我正在尝试在代码中设置约束并且没有得到预期的结果。
我有一个带有 3 个按钮(子视图)的 UIView 容器,我试图将一个前导空间设置为其他两个前导空间的平均值(所以它会在中间,水平)。当我将 3 个按钮放在我想要的位置时,与我在情节提要上看到的数字相比,我得到的数字似乎是正确的。我通过它们的帧的 x 值获得了前导空间(我已经仔细检查了 alignmentRectForFrame: 给出了相同的结果),并且我对它们进行了平均。
我用:
NSLayoutConstraint *twitterConstraint = [NSLayoutConstraint constraintWithItem:middleButton attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:containerView attribute:NSLayoutAttributeLeading multiplier:1.0 constant:average];
[twitterConstraint setPriority:UILayoutPriorityRequired];
[self.view setTranslatesAutoresizingMaskIntoConstraints:NO];
[NSLayoutConstraint activateConstraints:@[twitterConstraint]];
基本功能有效,即如果我输入一个数字而不是平均值,我会看到结果。我用当前的代码得到了意想不到的结果。具体来说,我在其他 2 个按钮的右侧获得了“中间按钮”。
帮助!
伊丹