gpt4 book ai didi

iOS 以编程方式生成的 View 具有导致与自动布局冲突的隐藏约束

转载 作者:行者123 更新时间:2023-11-28 22:19:46 25 4
gpt4 key购买 nike

这是一个链接到 View Controller 的非常基本的 View 。该 View 有一个带有编码约束的 UILabel。代码实际上运行正确,但控制台正在注册约束冲突,我无法弄清楚是代码的哪一部分造成了冲突。

LocationView.m文件

#import "LocationView.h"

@implementation LocationView

@synthesize locationTitle;

- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
[self setBackgroundColor: [UIColor blueColor]];
locationTitle = [[UILabel alloc]init];
[locationTitle setTranslatesAutoresizingMaskIntoConstraints:NO];
locationTitle.backgroundColor = [UIColor whiteColor];
[self addSubview:locationTitle];

NSDictionary *viewLocationTitle = NSDictionaryOfVariableBindings(locationTitle);

[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[locationTitle]|"
options:0
metrics:0
views:viewLocationTitle]];

[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[locationTitle(50)]|"
options:0
metrics:0
views:viewLocationTitle]];

- (void)updateConstraints {
[super updateConstraints];
}
@end

控制台错误

Unable to simultaneously satisfy constraints. 
(
"<NSLayoutConstraint:0x109510990 V:|-(NSSpace(20))-[UILabel:0x10950b660] (Names: '|':LocationView:0x10950acc0 )>",
"<NSLayoutConstraint:0x109510c10 V:[UILabel:0x10950b660(50)]>",
"<NSLayoutConstraint:0x109510c60 V:[UILabel:0x10950b660]-(0)-| (Names: '|':LocationView:0x10950acc0 )>",
"<NSAutoresizingMaskLayoutConstraint:0x108f3ae00 h=--& v=--& V:[LocationView:0x10950acc0(568)]>"
)

最佳答案

我想您是说您希望它的高度为 50 点并固定到 super View 的顶部和底部(您在标签前后添加了 |)。

尝试将垂直约束更改为

@"V:|-[locationTitle(50)]"

或者您可以为其中一个约束添加较低的优先级,但我猜这就是您的意思。

关于iOS 以编程方式生成的 View 具有导致与自动布局冲突的隐藏约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20736531/

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