为 UISlider 的 valueChanged 更新 UITableView titleForFooterInSection?
Posted
技术标签:
【中文标题】为 UISlider 的 valueChanged 更新 UITableView titleForFooterInSection?【英文标题】:Update UITableView titleForFooterInSection for UISlider's valueChanged? 【发布时间】:2010-01-19 15:48:31 【问题描述】:我有一个 UITableViewCell,里面有一个 UISlider。我有一个表格视图的页脚文本,我想用 UISlider 的值进行更新。
但是,调用 [self.tableView reloadData];不适用于 UISlider,因为调用次数过多。我能够正确更新单元格(它也显示值),但我无法更新页脚文本。我试过了:
[self tableView:self.tableView titleForFooterInSection:0];
但它不起作用..
【问题讨论】:
【参考方案1】:将滑块连接到控制器中的操作方法:
[theSlider addTarget:self
action:@selector(adjustSliderValue:)
forControlEvents:UIControlEventValueChanged];
实现滑块动作方法:
- (void) adjustSliderValue: (UISlider *) slider
// Change controller's state here.
// The next line will trigger -tableView:titleForFooterInSection:
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex: mySectionIndex]
withRowAnimation:UITableViewRowAnimationNone];
这比重新加载整个表更有效。不幸的是,没有办法直接设置节页脚文本。
【讨论】:
那行不通。这与这篇文章中描述的问题相同:***.com/questions/1252781/… -- 我可以更新单元格的 textLabel,但更新 section 或 tableView 以更新页脚不起作用。 啊,我现在明白了。好的,看来您必须改为实现 -tableView:viewForFooterInSection: 。这样,视图完全在您的控制之下,您可以直接与其交互,而无需重新加载数据。为避免滚动时与内存相关的问题,请将其保留在控制器中。视图可以是任何 UIView 子类,包括 UILabel。 啊,你是对的。嘿,如果您可以将其写为答案,我会将其标记为正确答案,以便您获得积分或其他任何东西:) 我可以简单地使用 [self tableView:self.tableView titleForFooterInSection:kSECTION] 来更新页脚标题。我在 seg 控制器水龙头上调用它。工作。以上是关于为 UISlider 的 valueChanged 更新 UITableView titleForFooterInSection?的主要内容,如果未能解决你的问题,请参考以下文章
UISlider 返回两个 Touch Up Inside 事件,为啥会这样?