我有一个ViewController
,其中包含一个包含可变大小内容的UIScrollView
View
。
- ViewController
-ScrollView
-View
-label1
-label2
- ...
调用控制器的viewDidLoad
时,我将UIScrollView
的内容大小设置为适当的高度,但视图不会滚动。如果我从按钮上的操作调用同一行,它确实会更新contentSize
并正确滚动。我正在使用autolayout
.知道为什么以及如何解决它吗?
视图不会滚动:
- (void)viewDidLoad
{
[super viewDidLoad];
[_scrollView setContentSize:CGSizeMake(100,500)];
}
视图将正确滚动:
- (IBAction)test:(id)sender
{
[_scrollView setContentSize:CGSizeMake(100,500)];
}
ViewDidAppear 也保证您的视图已加载并初始化 但是 viewdidAppear在 viewDidLayoutSubviews 之后触发。 如果您在 ViewDidLoaded 中执行大型编码,则 Realted 到 UI 您的视图控制器在显示中延迟
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:NO];
[_scrollView setContentSize:CGSizeMake(100,500)];
}
不要在 viewDidLoad
中设置内容大小。在viewDidAppear
中做到这一点
- 视图控制器-滚动视图 -视图 -标签1 -标签2
第一个滚动视图添加新的约束,下一个标签 1 和标签 2 添加约束,然后最终视图视图可以添加约束。