ios如何设置自动布局的滚动视图?

时间:2014-04-15 10:05:51

标签: ios scrollview autolayout

我想以编程方式创建一个显示说明的scrollView

我的层次结构可能是这样的:

->root View  
--->scroll View  
----->content View  
------->Label1  
------->Label2
------->Label3

这是一张显示应用程序结构的图片:

enter image description here

这是到目前为止的代码,我得到了我想要的东西,但现在我需要将所有这些包含在scrollView 中(只能垂直滚动)。
我尝试了很多不同的东西,但我还是不知道怎么做。

UIView *contentView = [UIView autolayoutView];
contentView.backgroundColor = [UIColor greenColor];
[self.view addSubview:contentView];
NSDictionary *views2 = NSDictionaryOfVariableBindings(contentView);
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[contentView]|" options:0 metrics:0 views:views2]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[contentView]" options:0 metrics:0 views:views2]];

UILabel *one = [UILabel autolayoutView];
UILabel *two = [UILabel autolayoutView];
UILabel *three = [UILabel autolayoutView];
for(UILabel *label in @[one,two,three]){
    label.backgroundColor = [UIColor redColor];
    label.text = @"fjeif\njeif\noesjf\nfjeif\njeif\noesjf\nfjeif\njeif\noesjf\nosfj";
    label.numberOfLines = 0;
    [contentView addSubview:label];
}
NSDictionary *views3 = NSDictionaryOfVariableBindings(one,two,three);
[contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|-[one]-|" options:0 metrics:0 views:views3]];
[contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[one(two)]-[two(three)]-[three]-|" options:NSLayoutFormatAlignAllLeft | NSLayoutFormatAlignAllCenterX metrics:0 views:views3]];

谢谢,对不起,如果我没有充分描述我的问题,我很着急。看图像应该足以理解了。

1 个答案:

答案 0 :(得分:0)

虽然我从XIB设置了所有约束,但我遇到了同样的问题。你可以这样做。

相对于容器视图,将前缘,后缘,顶部空间和底部空间约束添加到标签。然后,您可以将相同的约束添加到与scrollView相关的容器视图中。对scrollView执行相同的练习。 您只需要在容器视图中再添加一个约束(在容器视图约束中水平居中)。 希望这会对你有所帮助。