在viewDidLoad/viewWillAppear中设置我的UIScrollView的内容大小没有效果 - 为什么?

Rob*_*Rob 4 uiscrollview ipad ios

我正试图在UIScrollVIew容器装载时强制我的内容大小.我发现这比我想象的要困难得多.我试过设置在两个内容大小viewDidLoadviewWillAppear,就像这样:

-(void)viewWillAppear:(BOOL)animated
{    
    CGSize newContentSize = CGSizeMake(scrollView.contentSize.width, scrollView.frame.size.height + 80.0);
    [scrollView setContentSize:newContentSize];    
}
Run Code Online (Sandbox Code Playgroud)

如果我在打电话后立即设置断点setContentSize,我可以看到新的内容大小确实是我设置的.

但是,如果我在之后的某个任意点检查内容大小viewWillAppear,例如,scrollViewDidScroll内容大小已恢复为滚动视图中"实际"内容的大小,而不是我尝试强制它的大小是viewDidAppear.

为什么是这样?

Ano*_*mie 8

我不知道是什么在重置你,但我可以帮你找到答案.

我在这种情况下通常做的是子类UIScrollView(通常为"XXXUIScrollView"),覆盖setContentSize:(只调用[super setContentSize:size],可能带有NSLog),并在重写方法中设置断点以查看设置值的内容.