滚动后的值在 UITableView 中显示
Posted
技术标签:
【中文标题】滚动后的值在 UITableView 中显示【英文标题】:Value is shown in UITableView after it is scrolled 【发布时间】:2012-04-25 18:51:32 【问题描述】:在我的 iPad 应用程序中,我在标签上插入了一些值。该值也应该出现在另一个类的 UITableView 上。当我在标签中插入值并导航到另一个视图时,表格视图上没有出现任何值,但是当我向上滚动表格视图并到达其原始位置时,会出现该值。我该如何解决?
感谢和问候
电脑
【问题讨论】:
【参考方案1】:当您滚动表格时,您最终会在事情变得可见时重新加载数据。如果您在 viewillAppear 上调用 [tableView reloadData]
,这应该会刷新标签并为您正确显示。
祝你好运!
【讨论】:
嗨,我试过了。但是当我重新加载表格时,即使滚动后该值也不会显示。表格的顶部单元格也丢失了...... 听起来您可能会在加载表时重新初始化数据。标签被控制在另一个类别中的事实可能有些责任。您应该单步执行代码并跟踪您的价值观。正如告诉您做同样事情的两个答案所表明的那样,当 UITableView 的数据发生变化时,这是正确的做法。单步执行代码并观察数据本身的生命周期应该可以清除它。【参考方案2】:查看文档中的 reloadData 方法。您需要在更改值后调用此方法,以便表格知道重新加载当前显示的单元格。当您向上滚动时,单元格将被重绘,这就是您在滚动后看到新值的原因。
澄清一下,需要在 UITableView 对象上调用 reloadData 方法。
[myTableView reloadData];
来自文档:
重新加载接收器的行和部分。
- (void)reloadData
讨论
调用此方法可重新加载用于构建表格的所有数据,包括单元格、节页眉和页脚、索引数组等。为了提高效率,表格视图只重新显示那些可见的行。如果表因重新加载而缩小,它会调整偏移量。表视图的委托或数据源在它希望表视图完全重新加载其数据时调用此方法。不应在插入或删除行的方法中调用它,尤其是在通过调用 beginUpdates 和 endUpdates 实现的动画块中
【讨论】:
嗨,我试过了。但是当我重新加载表格时,即使滚动后该值也不会显示。表格的顶部单元格也丢失了......以上是关于滚动后的值在 UITableView 中显示的主要内容,如果未能解决你的问题,请参考以下文章
使用数组项属性值在 UITableView/UICollectionView 中显示
UiTableView cellForRowAt 没有返回好的值并且不能滚动