调整帧大小后的 UITableView 滚动速度

Posted

技术标签:

【中文标题】调整帧大小后的 UITableView 滚动速度【英文标题】:UITableView scroll speed after frame resize 【发布时间】:2012-05-24 13:15:20 【问题描述】:

我有一个 UITableView,它在 iPad 纵向模式下覆盖了一半的屏幕。每当我单击时,展开按钮计算和动画 tableview 的超级视图的框架以覆盖整个屏幕,滚动变得非常混乱和闪烁,即使只有一行。尤其是反弹动画似乎更长。 TableView 被 autoresizeheight 屏蔽。在我恢复 superview 的框架后,tableview 滚动再次变得更流畅。 tableview的初始帧和滚动速度之间有什么关系吗?这种行为的可能根本原因是什么?

【问题讨论】:

我不完全确定我理解你的情况,但我给了你 +1 票,因为我在表格视图上设置动画转换时看到了奇怪的行为。我不幸的解决方案是切断动画并选择立即更新 UI。我不建议你这样做,但我很好奇为什么 UITableView 很难在大小上或(在我的情况下)从 Pop-Over 视图中转换。 【参考方案1】:

也许您在 cellForRowAtIndexPath 方法中插入了调整大小,因此每次滚动时它都会设置大小表视图。我在 viewDidLoad 的检查中插入了这段代码 sn-p,然后大小将在开始时设置一次,一切正常。

CGPoint tvFrameO = _TableView.frame.origin;
CGSize tvFrameS = _TableView.frame.size;
float valueToResize = 50.0f;
_TableView.frame = CGRectMake(tvFrameO.x, 
                                     tvFrameO.y, 
                                     tvFrameS.width, 
                                     tvFrameS.height + valueToResize);

【讨论】:

以上是关于调整帧大小后的 UITableView 滚动速度的主要内容,如果未能解决你的问题,请参考以下文章

动态调整UITableView的大小,该大小将显示为不可滚动的内容列表

如何根据 UITableView 滚动动态调整 UITableViewCell 的大小?

UITableView 中的 UIImageview:滚动或点击时意外调整大小

具有调整大小的大图像的 UITableView 单元格中的初始滚动滞后?

如何将 UITableView 的高度调整为内容大小的高度?

UITableView 在旋转时使用自动布局调整大小