【问题标题】:Random UI updating with custom UITableViewController and Prototype cells defined from Storyboard使用从 Storyboard 定义的自定义 UITableViewController 和原型单元进行随机 UI 更新
【发布时间】:2012-02-08 14:58:04
【问题描述】:

我创建了一个UITableViewController 的子类,用作我故事板中视图的自定义类。该视图有许多定义为原型单元的部分/行,这些单元被实例化并按预期显示。大多数UITableView 委托方法只是调用super 的方法来处理部分数量、行等。

我已经缓存了用于更新-viewDidLoad 上的单元格的内容,然后是一个异步操作,它从我的服务器重新加载内容并随后重新绑定数据(在主线程上,-performSelectorOnMainThread::)。正是在这一点上,看似任意地,一些单元格内容(主要是标签)将被清除数据,并且在 10-15 秒之间不会更新为新数据。此时,刚刚显示的内容或有时在表格视图中滚动的内容都会导致内容出现。

我知道选择器正在被调用,并且在主线程上,UI 元素的文本属性正在设置,但随机它们只是......不要更新。我尝试在 tableView、控制器视图上添加 -setNeedsDisplay 和在 tableView 上添加 -reloadData(尽管最后一个似乎没有必要,因为它们是原型单元格)都无济于事。

有人遇到过这个吗?

【问题讨论】:

  • 我找到了一个“有问题的”修复 - 将我的 UILabel 更改为 UITextFields 修复了它。我没有将此作为修复程序发布,因为我仍在试图找出为什么 UILabel 没有以类似方式更新。

标签: ios user-interface uitableview


【解决方案1】:

我不确定这是否是由线程方面引起的,或者 tableView 是如何处理的。如果是 tableView,请查看此 post,因为在我正确处理动态原型 tvCells 之前,我的应用正在经历的消失数据有一些相似之处。

【讨论】:

    【解决方案2】:

    我的评论确实解决了我的问题。 UILabel 似乎在修改时不会更新,而是在内部决定何时重绘它们 - 无论您是否尝试使用 display 或 setNeedsDisplay 强制它。

    解决方案:使用UITextView 而不是UILabel

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-28
      • 2012-08-12
      • 2019-09-03
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多