我有一个 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/