我在故事板的UITableViewCell
原型中设置了一个水平UIScrollView
及其内容视图。我已经使用了自动布局。
在-cellForRowAtIndexPath:
方法中,我为这个滚动视图设置contentSize
和contentOffset
。
当第一次创建单元格时,问题就出现了。scrollView既不会滚动,contentOffset也不会发生。
但是,当我向下滚动一些单元格时(当它们开始被重用时),就会发生contentOffset,并且scrollView是交互式的。
由于我已经对UITableViewCell
进行了子类化,所以我尝试在-awakeFromNib
方法中设置contentOffset,使其不受影响。我还在-tableView:willDisplayCell:
方法中尝试过这样做,但没有成功。
可能出了什么问题?有变通办法吗?
我似乎没有任何可以包含的相关代码。如果您需要更多信息,请发表评论。
编辑我不知道这是否相关,但故事板显示了一个警告:Scroll View: Has ambiguous scrollable content width
问题是因为在设置contentSize
之后没有布局scrollView。如果在故事板中正确设置了contentSize(仍然不知道如何做到这一点),这就不会成为问题。
无论如何,在cellForRowAtIndexPath方法中,调用
[cell layoutIfNeeded];
设置contentSize后立即工作。
关于这个方法如何工作的一个很好的解释可以在这个线程中找到。