UITableViewCell原型中的UIScrollView仅在重复使用后滚动



我在故事板的UITableViewCell原型中设置了一个水平UIScrollView及其内容视图。我已经使用了自动布局。

-cellForRowAtIndexPath:方法中,我为这个滚动视图设置contentSizecontentOffset

当第一次创建单元格时,问题就出现了。scrollView既不会滚动,contentOffset也不会发生。

但是,当我向下滚动一些单元格时(当它们开始被重用时),就会发生contentOffset,并且scrollView是交互式的。

由于我已经对UITableViewCell进行了子类化,所以我尝试在-awakeFromNib方法中设置contentOffset,使其不受影响。我还在-tableView:willDisplayCell:方法中尝试过这样做,但没有成功。

可能出了什么问题?有变通办法吗?

我似乎没有任何可以包含的相关代码。如果您需要更多信息,请发表评论。

编辑我不知道这是否相关,但故事板显示了一个警告:Scroll View: Has ambiguous scrollable content width

问题是因为在设置contentSize之后没有布局scrollView。如果在故事板中正确设置了contentSize(仍然不知道如何做到这一点),这就不会成为问题。

无论如何,在cellForRowAtIndexPath方法中,调用

[cell layoutIfNeeded];

设置contentSize后立即工作。

关于这个方法如何工作的一个很好的解释可以在这个线程中找到。

最新更新