我正在尝试在容器加载时强制UIScrollVIew
的内容大小。我发现这比我想象的要困难得多。我已尝试在viewDidLoad
和viewWillAppear
中设置内容大小,如下所示:
-(void)viewWillAppear:(BOOL)animated
{
CGSize newContentSize = CGSizeMake(scrollView.contentSize.width, scrollView.frame.size.height + 80.0);
[scrollView setContentSize:newContentSize];
}
如果我在拨打setContentSize
后立即发出断点,我可以看到新的内容大小确实是我设置的。
但是,如果我在viewWillAppear
之后的某个任意点检查内容大小,例如scrollViewDidScroll
,则内容大小已恢复为“实际”内容的大小滚动视图,而不是我尝试强制它在viewDidAppear
中的大小。
为什么会这样?
答案 0 :(得分:8)
我不知道是什么在重置你,但我可以帮你找到答案。
在这种情况下我通常做的是子类UIScrollView(通常为“XXXUIScrollView”),覆盖setContentSize:
(只调用[super setContentSize:size]
,可能使用NSLog),并设置断点重写的方法,以查看设置值的内容。
答案 1 :(得分:0)
我遇到了完全相同的问题,到目前为止我发现的唯一解决方法是执行performSelector:withObject:afterDelay - 在一些小延迟后设置contentSize属性: UIScrollView won't scroll even when I set content size