我正在创建一个应用程序,其中包含一个显示带有自定义单元格的表格 View 的屏幕。每个单元格包含两个标签和一个 subview , subview 进一步包含其他 subview 。我正在处理单元格上的单击事件以隐藏/显示单元格中 subview 内的 subview 。如何实现当我点击单个单元格时,所有单元格的 subview 都会发生变化?
它就像 iPhone 中的 Stock 应用程序(使用 iOS 7),这里是截图:
如上图所示,当您单击任何绿色框时,所有框都会更改以反射(reflect)相同类型的值。
请告诉我这种方法是否合适,或者如何实现。
最佳答案
有几种方法可以做到这一点。第一个想到的是处理 UITableViewCell 子类中的不同状态,并重新加载可见单元格:
[self.tableView reloadRowsAtIndexPaths:[self.tableView indexPathsForVisibleRows] withRowAnimation:UITableViewRowAnimationAutomatic];
如果您正在寻找对流程的更多控制,也可以通过更改 future 单元格应加载到的状态,然后在每个可见单元格上调用方法来实现此流程。这将为您提供一种简单的方法来完全控制单元格内容的更新方式。
// Change flag for cell state then...
for (NSIndexPath *indexPath in [self.tableView indexPathsForVisibleRows]) {
if (condition) {
MyCellSubclass *cell = (MyCellSubclass *)[self.tableView cellForRowAtIndexPath:indexPath];
[cell someMethodWithArg:(id)state];
}
}
关于ios - 更改 UITableView 中所有单元格的 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21431102/