gpt4 book ai didi

ios - 如何使用 Autolayout 调整我的 super View 大小以匹配其 subview 的大小?

转载 作者:行者123 更新时间:2023-12-01 17:09:17 25 4
gpt4 key购买 nike

我有一个 UIView ("superview") 有几个 UILabels作为 subview ,在 Interface Builder 中设置。我已经打开了自动布局以正确地将列表中的所有标签一个接一个地隔开。这很好用。

我现在要做的是让我的 Superview 垂直调整大小以匹配我所有标签的高度,我不知道该怎么做。

这是如何运作的?

最佳答案

这是一个使用视觉布局的例子......所以忽略 translatesAutoresizingMaskIntoConstraints 业务。

这依赖于容器 View 没有任何高度限制并且它似乎依赖于 View 之间的间距这一事实。系统将调整 View 的大小以匹配 subview 的要求。

- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.backgroundColor = [UIColor redColor];

[self setTranslatesAutoresizingMaskIntoConstraints:NO];

_labelOne = [[UILabel alloc] init];
_labelOne.text = @"Banana";
_labelOne.backgroundColor = [UIColor blueColor];
[_labelOne setTranslatesAutoresizingMaskIntoConstraints:NO];

_labelTwo = [[UILabel alloc] init];
_labelTwo.text = @"Dinosaur";
_labelTwo.backgroundColor = [UIColor yellowColor];
[_labelTwo setTranslatesAutoresizingMaskIntoConstraints:NO];

[self addSubview:_labelOne];
[self addSubview:_labelTwo];

NSDictionary *views = NSDictionaryOfVariableBindings(_labelOne, _labelTwo);
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_labelOne]|" options:0 metrics:nil views:views]];
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_labelTwo]|" options:0 metrics:nil views:views]];
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[_labelOne(30)]-15-[_labelTwo(30)]-10-|" options:0 metrics:nil views:views]];
}
return self;
}

关于ios - 如何使用 Autolayout 调整我的 super View 大小以匹配其 subview 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18061445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com