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