之间有什么区别
[tableView deselectRowAtIndexPath:indexPath animated:NO];
和
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexpath];
[cell setSelected:NO];
???
答案 0 :(得分:3)
在UITableView中,单元格与特定的数据不匹配。它可以(并且应该在大多数情况下)重复使用,并且在不可见时为零。
deselectRowAtIndexPath
会将indexPath设置为“未选择”#39;在你的tableview中,所以当你来回滚动到那个单元格时,它将保持未被选中状态,因为你告诉你的tableview,无论你在indexPath上显示什么单元格,都应该取消选择它。
使用UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexpath];
[cell setSelected:NO];
将单元格设置为未选中。但是,该单元格可用于其他数据,如果未显示此indexPath,它甚至可以为nil。
答案 1 :(得分:2)
第一个是以编程方式取消选择单元格。因此,如果用户已经选择了单元格,它将取消突出显示单元格。
至于第二位代码,我认为这只是表视图中某个单元格的指针或引用。您可以使用此代码编辑任何表视图委托方法的单元格OUTSIDE。因此,如果您想在一个单元格上编辑/更新标签,而是使用随机方法(而不是表格视图委托方法),那么您可以使用该代码来引用标签文本属性。
我认为您还应该查看Apple Developer Library网站。它详细解释了所有不同的表视图方法/属性/等:
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableView_Class/
答案 2 :(得分:0)
“选定”的概念对于tableview和单元格是不同的。 tableview可以选择一行或多行来更改tableview的状态,但更改tableview cell selected状态只会影响其外观而不影响其他内容。