iphone - 使用 UIStepper 连续重复时更新 UITableView 部分标题文本

标签 iphone ios uitableview uistepper

我有一个 UITableView具有多个部分,每个部分具有多个离散的单元格 UIStepper控制。点击并按住每个单元格的 UIStepper一个同伴UILabel更新为当前 UIStepper值,根据需要。

这工作正常:按住 UIStepper向下并增加总数,更新 UILabel因为它这样做。

我想要的是每个部分的标题将该部分中所有单元格的当前总数相加,并将该数字添加到标题文本中,为用户提供所有部分单元格的快速总和 UIStepper值(value)观。

=====================
部分总数:12
=====================
单元格:3 | - | + |
--------------------
单元格:5 | - | + |
--------------------
单元格:4 | - | + |
=====================
部分总数:9
=====================
单元格:1 | - | + |
--------------------
单元格:2 | - | + |
--------------------
单元格:6 | - | + |

这也有效,使用 [self.tableView reloadData] ;称呼。

但是,它只记录在 UIStepper 上进行的每个离散触摸。 ; reloadData call 似乎停止了正在注册的连续触摸。这意味着要使标题中的总数与该部分单元格中不断增加的值保持同步,需要用户一次轻按一次,而不是按住。

有没有办法在整个“循环”中重新加载单个部分的标题文本,以便在用户将手指放在控件上时跟踪增加的值?

最佳答案

我会保留对您拥有的所有节标题的引用,并在您的增量代码调用方法中直接在标题 View 上,而不是依赖表更新来处理它。创建节标题有两个主要选项:

  • viewDidLoad 中初始化它们并将它们保存在一个集合中。然后在 tableView:viewForHeaderInSection:从集合中返回该部分的适当实例。如果您提前知道将有多少个部分,则此选项是最佳选择。
  • tableView:viewForHeaderInSection: 中懒惰地初始化它们并将它们按部分编号存储在集合中。如果您有很多标题,并且如果用户没有滚动,您不想将它们保留在内存中,那么这是您最好的选择。

  • 当您需要更新 header 时,将其从集合中拉出并在其上调用一些递增方法;如果它是可见的,它将立即更新,如果不是,它会在滚动到 View 中时以正确的值显示。理想情况下,这些递增的值会保存到某个模型对象中!

    关于iphone - 使用 UIStepper 连续重复时更新 UITableView 部分标题文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9877971/

    相关文章:

    ios - 在 iOS 7 上本地验证应用内收据和捆绑收据的完整解决方案

    ios - 无法从视频网址生成缩略图

    ios - 如何修复 UITableView 中的重复搜索结果

    ios - ios中的徒手裁剪

    ios - 带有空数组的 UITableView reloadData

    iphone - 在自定义 UINavigationController 中强制执行特定 rootViewController 的推荐方法是什么?

    ios - 如何从一个 UIView 类中制作不同的绘制 View ?

    ios - 复制 vs 强大的属性

    swift - 添加文本后自动高度单元格

    ios - 如何在显示 tableview 单元格之前显示占位符?