gpt4 book ai didi

iphone - 在代码中创建 NSLayoutConstraints

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

这是我第一次尝试使用约束,所以请原谅这个初级问题。

我希望能够设置一系列约束,以便 subview 小于 View 宽度的 75% 或 View 宽度的 75%。因此,如果我的 subview 的宽度大于 View 宽度的 75%,则将其设置为全宽。我想这样做以确保 subview 在 iPhone 和 iPad 上显示良好。

这可能使用约束吗?我设置了两个约束,但是我不确定如何仅使用优先级来解决这个问题,我该如何告诉约束系统根据我的 View 宽度选择哪一个?

// Ensure it's width is either the less than 3 quarters of the page width or the full page width (including the gutter margins)
NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationLessThanOrEqual toItem:self attribute:NSLayoutAttributeWidth multiplier:0.75 constant:0];
[self.constraints addObject:constraint];

constraint = [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeWidth multiplier:1.0 constant:0];
[self.constraints addObject:constraint];

// Add the constraints to the page
[self addConstraints:self.constraints];

非常感谢任何帮助,因为他们陷入了困境。

戴夫

最佳答案

您有什么理由不能仅根据平台应用适当的约束条件?

NSLayoutConstraint *constraint;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
constraint = [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationLessThanOrEqual toItem:self attribute:NSLayoutAttributeWidth multiplier:0.75 constant:0];
}
else {
constraint = [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeWidth multiplier:1.0 constant:0];
}
[self addConstraint:constraint];

此外,根据您的评论,我们不清楚您是否尝试过使用优先级……这样做有用吗?

关于iphone - 在代码中创建 NSLayoutConstraints,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13602744/

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