在viewDidLoad / viewWillAppear中设置我的UIScrollView的内容大小不起作用 – 为什么?
我试图强制容器加载时,我的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
。
为什么是这样?
我不知道什么是重置在你身上,但我可以帮你find答案。
我通常在这种情况下做的是UIScrollView的子类(通常是“XXXUIScrollView”),覆盖setContentSize:
只需调用[super setContentSize:size]
,也许用NSLog),并在重写的方法中设置一个断点什么是设定的价值。
我得到了完全相同的问题,目前唯一的解决方法是执行performSelector:withObject:afterDelay – 设置contentSize属性后一些小的延迟: 即使我设置内容大小UIScrollView不会滚动