0

我环顾四周,但没有找到这个问题的答案,所以如果它是重复的,请指出原件,我将删除。而且我刚刚开始使用自动布局,所以如果我的问题源于基本的误解,请告诉我!

正如主题标题如此巧妙地表明的那样,我想在 iPad 屏幕下方设置 2/3 的位置,无论方向如何。如果我用点设置它,比如在横向视图中高于底部 250 点,那么当它最终在纵向视图中高于底部 250 点时,它看起来很奇怪而且太低了。但是如果我在纵向视图中将其设置为高于底部 400 点,那么在横向视图中它看起来很奇怪而且太高了。有没有办法让我将约束设置为“屏幕下方的 2/3”或其他类似的比例距离?

4

1 回答 1

2

是的,您可以通过在 constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant: 方法中使用 multiplier 参数来做到这一点。我认为这样的事情应该有效。您将需要一个 IBOutlet(在我的示例中为 conBottom),将其连接到从标签底部到在 IB 中创建的视图底部的约束。您还需要标签的 IBOutlet(在我的示例中为 myLabel)。

    [self.view removeConstraint:conBottom];
    conBottom = [NSLayoutConstraint constraintWithItem:myLabel attribute:NSLayoutAttributeBottom relatedBy:0 toItem:self.view attribute:NSLayoutAttributeBottom multiplier:0.66 constant:0];
    [self.view addConstraint:conBottom];

请注意,您只能通过对视图底部或右侧的约束来执行此操作,因为左侧和顶部的属性值为 0。

于 2013-01-16T16:59:16.800 回答