首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UITable节头中的UIButton未更新

UITable节头中的UIButton未更新
EN

Stack Overflow用户
提问于 2011-05-24 07:37:43
回答 1查看 351关注 0票数 0

我有一个包含两个部分的简单UITableView。每个部分都有一个正确显示的标题。

在第二部分中,它的标题中有一个UIButton (以及一个UILabel) --节标题的视图是从xib加载的--同样,它显示得很好,并且该按钮对点击做出反应并调用我的IBAction。

此部分中的每个表单元格也都有一个按钮。当这些按钮中的一个被点击时,我用计数更新部分标题中按钮中的文本。作为背景,每个表单元格代表一个联系人,点击给定单元格中的按钮将该联系人添加到列表中,点击部分标题中的按钮将对列表中的所有联系人执行操作。

这就是问题的症结--当表格视图第一次显示时,点击单元格中的按钮可以立即正确地更新部分标题按钮文本。一旦我滚动了表格,并点击按钮,区段标题按钮文本就不再更新。

如果我用力向上滚动表格,使得部分标题撞到顶部,则部分标题按钮标签会突然更新,就好像重绘事件已经排队并突然释放一样。

我尝试过在主线程上执行更新,在异步分派块中执行,调用setNeedsDisplay/Layout等。它拒绝更新,除非我处理表。

在更新按钮文本之后调用表上的reloadData是可行的,但这似乎非常繁重。

谢谢你的见解。

更新按钮文本的代码:

代码语言:javascript
运行
复制
   NSString *l = NSLocalizedString(@"INVITE_LABEL", nil);
   NSString *label = [NSString stringWithFormat:l, [invitedEmails count]];
   [inviteSelectedButton setTitle:label forState:UIControlStateNormal];

从表视图按钮点击事件的IBAction调用。如果我在代码后面加上:

代码语言:javascript
运行
复制
   [self.viewController.addressBookTable reloadData];

上面的代码每次都能正常工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-27 02:59:44

我以前也遇到过类似的问题,比如表视图中的按钮-单元格或标题。在我的情况下,即使我认为我通过滚动或表格重新加载正确地定位了所需的Button View,但实际上该按钮正被替换为一个新的实例。我的解决方案没有太多细节,我的解决方案是创建一个自定义按钮,它继承了UIButton,并通过直接在(Id)发送者或通过发布UINotifications调用方法来适当地响应我的操作。

我不确定这是否会帮助你解决你的问题,但也许它会触发一个解决方案。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6104251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档