如何解决UITable节标题中的UIButton未更新
| 我有一个包含两个部分的简单UITableView。每个部分都有一个正确显示的标题。 在第二部分中,它的标题中有一个UIButton(以及UILabel)-该部分标题的视图是从xib加载的-再次,它的视图很好,并且按钮对点击和调用做出了反应我的IBAction。 本节中的每个表格单元格都有一个按钮。当点击其中一个按钮时,我用一个计数更新节标题中按钮中的文本。对于背景,每个表单元格都代表一个联系人,点击给定单元格中的按钮会将该联系人添加到列表中,然后点击节标题中的按钮将对列表中的所有联系人执行操作。 这就是症结所在–首次显示表格视图时,在单元格中点击按钮可以立即正确更新节标题按钮文本。滚动表(甚至一点点)并点击按钮后,节标题按钮文本将不再更新。 如果我对表进行硬滚动,以使节标题撞到顶部等,则节标题按钮标签会突然更新,就好像重绘事件已经排队并突然释放一样。 我已经尝试在异步分配块中的主线程上执行更新,调用setNeedsDisplay / Layout等。它拒绝更新,除非我乱动表。 在更新按钮文本之后在表上调用reloadData可以正常工作,但这似乎很繁琐。 感谢您的任何见解... 更新按钮文本的代码: NSString *l = NSLocalizedString(@\"INVITE_LABEL\",nil);
NSString *label = [NSString stringWithFormat:l,[invitedEmails count]];
[inviteSelectedButton setTitle:label forState:UIControlStateNormal];
从表视图的IBAction调用按钮点击事件。如果我为该代码添加后缀:
[self.viewController.addressBookTable reloadData];
上面的代码每次都可以正常工作。
解决方法
表格视图内的按钮-单元格或标题之前,我也遇到过类似的问题。就我而言,这始终是一种情况,即使我认为我已正确定位所需的“按钮视图”(通过滚动或重新加载表),但实际上该按钮已被新实例替换。无需赘述,我的解决方案是创建一个自定义按钮,该按钮将UIButton子类化,并通过直接在(id)sender上调用方法或发布UINotifications来对我的操作做出适当响应。
我不确定这是否可以帮助您解决问题,但也许会触发解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。