UITableView, setContentOffset 动画:NO 不会在 iPad 上滚动

Posted

技术标签:

【中文标题】UITableView, setContentOffset 动画:NO 不会在 iPad 上滚动【英文标题】:UITableView, setContentOffset animated:NO will not scroll on iPad 【发布时间】:2011-08-13 21:41:23 【问题描述】:

我有一个简单的UITableView;我试图强制它滚动到viewDidLoad 中的某个位置,所以我可以隐藏表格中的第一行(除非用户向上滚动)。我的第一行是90.0px 的高度,所以我正在尝试强制我的UITableView 滚动:

[contentTable setContentOffset: CGPointMake(0, 90.0f) animated: NO];

问题是使用animated: NO 什么都不做; UITableView 不会滚动。但是,如果我使用animated: YES,一切都会很好;它会滚动,但是让它动画化的缺点是我的 UI 在滚动过程中会闪烁,这根本不是我想要的。

任何想法为什么?我的UITableView 是 1 行还是 20 行似乎并不重要,只有当我将 animated: YES 传递给 setContentOffset 时它才会滚动。

我目前正在运行 Xcode 4.2,并且在我的第一代 iPad 上使用 ios 4.3.3。


编辑:要提的另一件事 - scrollToRect 似乎根本不起作用,无论我为它传递的 animated 属性值如何。我对 iOS 上的滚动有什么根本误解吗?

【问题讨论】:

UITableView won't scroll to certain position的可能重复 【参考方案1】:

可能的重复:

setContentOffset only works if animated is set to YES

UITableView won't scroll to certain position

【讨论】:

【参考方案2】:

我很确定 UITableView 滚动存在一些问题。我正在使用:

selectRowAtIndexPath:indexPath 动画:YES scrollPosition:UITableViewScrollPositionMiddle

应该选择 indexPath 指示的行,然后滚动表格,使所选行位于视图的中间。它在模拟器上以这种方式可靠地工作,但在 iPhone 上它有时滚动,有时不滚动。通常(但并非总是)它在前几次工作,然后停止工作(即,它不滚动并且选定的单元格不在屏幕上)。但始终选择正确的单元格。我无法确定是什么决定了它是否滚动。我向 Apple 提交了错误报告,但没有回复。

【讨论】:

以上是关于UITableView, setContentOffset 动画:NO 不会在 iPad 上滚动的主要内容,如果未能解决你的问题,请参考以下文章

UItableview 单元格的动态高度与 UItableview 单元格内的 UItableview

UITableView

水平 UITableView 中的垂直 UITableView

如何与重叠显示的 UITableView 交互另一个 UITableView

在 UITableView 中的 UINib 中重新加载 UITableView

iOS小技能:1. 什么是UITableView? 2. UITableView如何展示数据