我正在尝试使用Swift(iOS 8)制作我的第一个iOS应用。
我有一个UITableView和一个CustomCell。该应用程序有点像新闻动态。启动该应用程序后,它将从Web服务器加载所有新闻并将新闻保存到阵列中。自定义单元格具有动态高度。我打电话cell.layoutIfNeeded()
的tableView:cellForRowIndexPath
正确获取动态小区高空作业。否则,单元格高度将无法正确显示。我发现,暗示这里的堆栈溢出。图片:获取所有新闻后,单元格将正确显示
使用SIOSocket,我得到一个带有新消息的事件,我想将其插入UITable。所以,我创建了一个插入新闻到我的数组,并调用一个方法tableView.insertRowsAtIndexPath
之间beginUpdates()
,endUpdates()
。问题就从这里开始。新的单元格将正确显示,但所有其他可见单元格均缩小为默认的单元格高度(44pt)。图像:添加新条目后,旧单元格太小了。经过一些滚动,单元格已更新,现在又可以正确显示。
当我不使用insertRowsAtIndexPath
,而是时tableView.reloadData()
,它就起作用了。但是我认为对于每个新消息都调用reloadData并不是一种好的样式。当然,重新加载后没有动画...
谁能解释为什么会这样,是否有解决此问题的解决方案?谢谢
当我将估算的行高度设置为任何值时,问题就消失了。
tableView.estimatedRowHeight = 44
该viewDidLoad
方法完全解决了我的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句