我想将视图相互嵌入(在当前情况下,嵌入到滚动视图中以允许显示比屏幕尺寸更高的内容)并使用 iOS 6.0 的自动布局功能以避免不断计算内容大小。
我有以下 ViewController 的视图,其中包含一个 UIScrollView:
我想在这个滚动视图中显示我的 ChildVC 视图:
请注意,标签是多行的并且包含“很多”文本,还定义了自动布局约束(尤其是大于或等于 height 属性)。
我创建 childVC 并通过以下代码将其添加到主 VC 的视图中:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
childVC = [[ChildVC alloc] initWithNibName:@"ChildVC" bundle:nil];
self.myScrollView.translatesAutoresizingMaskIntoConstraints = NO;
childVC.view.translatesAutoresizingMaskIntoConstraints = NO;
[self.myScrollView addSubview:childVC.view];
NSDictionary *viewsDictionary = @{ @"subView" : childVC.view};
NSString* constr = [NSString stringWithFormat:@"|-0-[subView(%f)]-0-|", self.myScrollView.frame.size.width];
[self.myScrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:constr options:0 metrics: 0 views:viewsDictionary]];
[self.myScrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[subView]-(>=0)-|" options:0 metrics: 0 views:viewsDictionary]];
}
内容视图的约束(我猜这将是 childVC 的视图)是代码中设置的唯一内容,因为我只想要一个垂直滚动条,我希望子视图的内容(水平)缩小以显示在滚动查看器。
我的输出是这样的:
UI 显示、缩小但我的标签不会垂直调整大小,因此它不会显示整个文本:(
我试图在这里和那里将 translatesAutoresizingMaskIntoConstraints 设置为标签,但没有任何成功。
我很感激任何帮助,因为我已经为此苦苦挣扎了好几天:/