有没有人知道如何在显示集合视图时重新加载/刷新UICollectionView?基本上我正在为UITableview寻找类似于标准reloadData方法的东西.
当我调用UICollectionView的reloadData方法时,它会导致所有可见单元格闪烁.我发现这样做的原因是重新创建所有可见单元格,而UITableView 在重载数据后返回- tableView:cellForRowAtIndexPath:方法中的可见单元格.
那么,我怎样才能避免在UICollectionView中重新创建可见单元格.
我使用UITableView,我希望更改高度不同的单元格.但我不想使用重载数据,因为我的表视图包含UITextView我现在编辑并且UIKeyBoard已启动.
我有一个带可选行的表视图.当我重新加载表视图时,可能会添加(或删除)一些新行,并且表视图的单元格中的某些标签可能会更改.这就是我想通过调用实现的目标[tableView reloadData].
不幸的是,该方法还清除了表视图的整个状态 - 包括选择.但我需要保持选择.
那么如何在保持所选行选定的同时重新加载表视图中的所有数据呢?
那可能吗?仅重新加载可见的单元格以便更有效地执行此操作.
有没有办法重新加载UITableView具有动画的多个部分的特定单元格?
我一直在用:
self.TheTableView.reloadSections(NSIndexSet(index: 1), withRowAnimation: UITableViewRowAnimation.Right)
Run Code Online (Sandbox Code Playgroud)
这会激活该部分中的所有单元格.另一种选择是使用:
self.TheTableView.reloadRowsAtIndexPaths(<#indexPaths: [AnyObject]#>,
withRowAnimation: <#UITableViewRowAnimation#>)
Run Code Online (Sandbox Code Playgroud)
编辑:
使用reloadRowsAtIndexPaths之后
由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无效更新:第1节中的无效行数.更新后的现有部分中包含的行数(5)必须等于该行中包含的行数在更新(4)之前的部分,加上或减去从该部分插入或删除的行数(0插入,0删除)和加或减移入或移出该部分的行数(0移入,0移动出)."
试图通过将对象附加到数组中来找到重新加载tableview的平滑方法.
在reloadRowsAtIndexPaths工作之前调用TheTableView.reloadData(),但动画很糟糕.还有另一种方法吗?
我在我的应用程序中遇到问题 - 您可以发布和编辑您喜欢的地方.发布帖子或编辑特定帖子(UITableViewCell)后,UITableview会重新加载.
我的问题是:UITableview重新加载后滚动到顶部.但这不是我想要的.我希望我的观点留在我所在的单元格/视图上.但我不知道如何管理.
你可以帮帮我吗?
在ViewController中,我试图在另一个ViewController中的TableView中重新加载数据,如下所示:
(self.presentedViewController as! tableViewController).table.reloadData()
Run Code Online (Sandbox Code Playgroud)
其中tableViewController是TableView控件中的类(我知道它不是上层驼峰的情况),而table是TableView.好吧,这样做会产生"致命的错误:在解开一个Optional值时意外地发现nil",我想这是有道理的,因为"presentViewController"还没有被加载.我也试过这个:
(self.navigationController!.viewControllers[self.navigationController!.viewControllers.count - 2] as! tableViewController).table.reloadData()
Run Code Online (Sandbox Code Playgroud)
产生了相同的结果(我确保tableViewController在navigationController堆栈的当前ViewController下).我对我应该做什么感到困惑...我觉得在不同的视图控制器中引用属性应该更容易.我可能有点模糊; 如果我,请告诉我你需要知道什么!
我UICollectionView在单元格内部有标签,可以定期自动更改.当此更新触发时,我调用reloadDataUICollectionView并设置单元格以更改背景颜色[UICollectionViewCell setHighlighted:].
问题是如果用户按住某个单元格然后进行更新,则当用户释放该单元格时会保持突出显示并且也不能再进行选择.
我注意到dequeueReusableCellWithReuseIdentifier:forIndexPath:reloadData之后在单元格上调用setHighlighted.
我也试过reloadSections:而不是reloadData,这解决了细胞被"卡住"的问题,但是当它被调用时会导致细胞淡出并进入细胞.
将呼叫置于内部performBatchUpdates:似乎也无法解决问题.
我有一个UITableView,每个单元格都有一个图像和两个标签,正如你在第一张图片上看到的那样

所以我尝试使用自我调整细胞,一切都很好,除了两件事:
1)第一个和第二个单元格没有正确显示内容,但在我向下滚动然后返回它们之后一切正常.我试图在viewDidAppear中使用[tableview reloadData],但它没有帮助.首先观看不合适的标签.你可以在这个视频上观看它https://www.youtube.com/watch?v=I9DGBl1c5vg
查看第一个单元格上的标签.
2)这是一个艰难的.我正在滚动表格,一切都很好,但是当我选择行时问题就出现了.它正在推动我进行详细视图,但是当我按下"返回"并返回到主视图时,tableview跳转,所以我回到不选择的行,如果我滚动表格它不会滚动平滑,但是跳跃.以下是两个视频的链接,第一个显示滚动顺畅https://www.youtube.com/watch?v=9wAICcZwfO4如果我不去详细视图,第二个显示跳跃问题https:/ /www.youtube.com/watch?v=fRcQ3Za1wDM.
它绝对肯定与自我调整单元格有关,因为如果我不使用它,则不会发生这种问题.
reloaddata ×10
ios ×8
uitableview ×5
objective-c ×3
swift ×3
tableview ×2
cell ×1
clear ×1
row ×1
uitextfield ×1