ScrollView不能滚动的问题

XIB创建的scrollview,遇到两个问题,
1.自动布局出错,设置好了约束,却还是有显示红色
错误码(Has ambiguous scrollable content width / height )
原因:scrollview必须设置contentsize才能被完整创建,xib自动布局的scrollview不能直接设置contentsize,所以我们必须确定scrollview的contentsize,才能完成约束。

2.程序中设置了contentsize,却不能滚动
原因:没有在正确的地方设置contentsize
并在viewDidLoad函数中设置ScrollView的contentSize属性的话,会发现运行的程序中ScrollView可见,
但无法拖动。这是因为iOS6中的AutoLayout机制,在viewDidLoad函数被执行后,AutoLayout会重新
把contentSize修改为符合屏幕大小的数值(也就是说,现在的contentSize又适合了屏幕大小,
并没有大于UIScrollView本身的大小,当然也就不能滚动了)。

解决办法是重写viewDidAppear:(BOOL)animated方法,在父类方法调用之后再修改contentSize属性:

  • (void)viewDidAppear:(BOOL)animated
    {
    [superviewDidAppear:animated];
    self.theScroller.contentSize=CGSizeMake(400.0,600.0);
    }

你可能感兴趣的:(ScrollView不能滚动的问题)