ios - 更改 UITableView 中所有单元格的 subview

标签 ios iphone objective-c uitableview

我正在创建一个应用程序,其中包含一个显示带有自定义单元格的表格 View 的屏幕。每个单元格包含两个标签和一个 subview , subview 进一步包含其他 subview 。我正在处理单元格上的单击事件以隐藏/显示单元格中 subview 内的 subview 。如何实现当我点击单个单元格时,所有单元格的 subview 都会发生变化?

它就像 iPhone 中的 Stock 应用程序(使用 iOS 7),这里是截图:

enter image description here

如上图所示,当您单击任何绿色框时,所有框都会更改以反射(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/

相关文章:

ios - 如何在iPhone 6/6s Plus上保持人像启动屏幕

ios - 如何从另一个 View (swift 4)对选项卡栏 Controller 中的特定 View 执行 performSegue

ios - Apple 在向我们的服务器发送应用内购买请求时使用哪种国家/地区代码格式?

iphone - 在 tabbarItem 上设置辅助功能角标(Badge)

iphone - 更正 float

iphone - 我想要检测 iPhone 设备的唯一标识符字符串(就像 UDID)?

ios - 在 ScrollView 中垂直滚动时 ImageView 移到一边

ios - 初学者 : Need Help Accessing Magnetometer Data using Swift

ios - xcode 中的新 View Controller ?

c++ - 如何将 std::function 从 Objective-C++ 传递到 C++ 方法