UIScrollview:什么是将contentSize设置为0?

时间:2015-03-27 13:11:17

标签: ios objective-c uiscrollview

我有一个UIScrollView,在viewDidAppear我设置了contentSize

- (void)viewDidAppear:(BOOL)animated{
    CGSize scrollContentSize = CGSizeMake(320, 9200);
    self.scrollView.contentSize = scrollContentSize;
}

这段代码肯定在运行。

但是,视图不会滚动。我连接了一个按钮来记录contentSize,它返回0,0。如果我再次设置contentSize按钮,则可以正常工作。

我没有在我的代码中的任何其他位置引用scrollView,可能将contentSize设置为0,有什么方法可以阻止它这样做,或者运行我的设置后来在设置视图的过程中?

1 个答案:

答案 0 :(得分:0)

如果您使用了Autolayout,那么您必须为其中的子视图制定约束。然后Autolayout将自动计算其内容大小。

但是当我通过按钮动作设置内容时,它有效吗?怎么样?

当视图再次重新滚动滚动视图时,将根据约束计算。因此,当您旋转设备/重新布局视图时,它将无法工作。

我不想使用自动布局?现在是什么?

然后你可以设置内容。

还有一件事,最好的做法是在少数生命周期方法上调用超级实现。 所以这样做。

- (void)viewDidAppear:(BOOL)animated{
     [super viewDidAppear:animated];
     // Your code here
 }

Here is the Good starting point

Excellent tutorial