Jam*_*mes 7 iphone cocoa-touch uitableview ios
我被这一段时间困扰了......
当您点击iPhone的Apple手机应用程序中的联系人单元格(进入带有联系人详细信息的视图)并点击上一个视图时,会有一个简短的动画(从蓝色渐变到白色),显示取消选择单元格.这是Apple自己的应用程序中所有表视图的行为,以及根据其人机界面指南推荐的行为.
但是,在我自己的项目中,我一直无法复制这种行为.UITableView当我从详细视图返回时,我的所有单元格都没有被选中.
我查看了Apple的文档中的CoreDataBooks示例代码,该代码具有所需的单元格取消选择行为,并且表格视图似乎"自动"获取行为(没有任何特定实现).
我也尝试在这些非常相似的问题中实现解决方案:
当navigationController弹出视图时,取消选择所选单元格的内容是什么?
但是我总是得到相同的结果 - UITableView当我返回它时,没有选择任何单元格.(即使在添加[tableView deselectRowAtIndexPath:[tableView indexPathForSelectedRow] animated:animated];视图控制器的-viewWillAppear:方法之后.)
也有人建议在一个问题具有的意见[[self tableView] reloadData];中-viewWillAppear:可能会导致不保持选定的单元格.但CoreDataBooks做同样的事情,仍然有所需的行为(貌似),没有任何特定的代码.
有关如何解决问题的任何建议?提前致谢.
在旁注中,我不太明白为什么取消选择单元格的代码应该在-viewWillAppear:(而不是-viewDidAppear:)中实现.在屏幕上显示表格视图之前,这不会导致一切发生吗?这可能只是因为我对视图的生命周期缺乏正确的理解,但任何澄清都会很好.再次感谢.
您是否尝试过 UITableViewController(不仅仅是表视图,而是表视图控制器)的clearsSelectionOnViewWillAppear 属性?如果您将其设置为NO它将使选择保持蓝色。
为了获得您想要的效果,您可能还需要添加一个调用
- (void)deselectRowAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated
以确保它不会永远保持蓝色。
查看UITableView 文档的概述部分以开始使用。
//编辑// 正如下面的评论中所指出的,我们最终所做的是将调用[[self tableview] reloadData];移至viewDidAppear.
我的猜测是,CoreDataBooks 有一个足够复杂的表(包含部分和书籍以及部分和书籍),事件的时间安排正在发生一些事情。
| 归档时间: |
|
| 查看次数: |
4257 次 |
| 最近记录: |