gpt4 book ai didi

ios - 自动布局 - 使 View 的尺寸依赖于另一个 View 的尺寸

转载 作者:行者123 更新时间:2023-11-29 12:58:12 24 4
gpt4 key购买 nike

简单的处理:我想使 UIView 的宽度为其父 View 宽度的一半。这是我的代码:

//Display a red rectangle:
UIView *redBox = [[UIView alloc] init];
[redBox setBackgroundColor:[UIColor redColor]];
[redBox setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.view addSubview:redBox];

//Make its height equal to its superview's,
//minus standard spacing on top and bottom:
NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[redBox]-|" options:0 metrics:nil views:@{@"redBox": redBox}];
[self.view addConstraints:constraints];

//Make its width half of its superviews's width (the problem):
NSLayoutConstraint *constraint = [NSLayoutConstraint
constraintWithItem:redBox
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeWidth
multiplier:0.5
constant:0.0
];

[self.view addConstraint:constraint];

[self.view setBackgroundColor:[UIColor blueColor]];

这是我得到的:

enter image description here

如果我将 multiplier 设置为 1.0,则 View 的宽度是其父 View 的一半。但这是为什么呢?

最佳答案

问题可能是您的红框 View 约束不足。你已经给了它一个宽度,但没有告诉它它应该水平定位的位置。因为它应该是父 View 宽度的一半,所以它可以选择将自己定位在父 View 的左半部分。或者右半边。或中间。您没有指定,所以框架只是选择一些东西。

在这种情况下,看起来它正在选择将红色框的中心 与父 View 的左边缘对齐。这似乎是一个奇怪的选择,但同样,您没有指定任何内容。它可以选择任何它想要的东西。

添加另一个将水平定位 View 的约束。这应该可以解决问题。

关于ios - 自动布局 - 使 View 的尺寸依赖于另一个 View 的尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20476180/

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