ios - 自动布局可以处理比例(例如,我可以设置一些东西显示在屏幕下方的 2/3 处)而不是点吗?

标签 ios objective-c xcode

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

正如主题标题巧妙地指出的那样,我想在 iPad 屏幕下方 2/3 的位置设置一些东西,而不管方向如何。如果我用点来设置它,比如在横向 View 中底部上方 250 点,那么当它在纵向 View 中最终在底部上方 250 点时它看起来很奇怪而且太低了。但是如果我在纵向 View 中将它设置在底部以上 400 点,那么在横向 View 中它看起来很奇怪并且太高了。有没有办法将约束设置为“屏幕下方 2/3”或类似的其他比例距离?

最佳答案

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

请注意,您只能对 View 的底部或右侧进行约束,因为左侧和顶部的属性值均为 0。

关于ios - 自动布局可以处理比例(例如,我可以设置一些东西显示在屏幕下方的 2/3 处)而不是点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14363401/

相关文章:

ios - 如何使用 3d touch 从主屏幕的多个小部件中选择一个?

ios - 开启/关闭iCloud时迁移数据

objective-c - Cocoa 在保留动画的同时调整 NSImage 的大小

ios - swift 中的尾随关闭问题?

ios - 解析 JSON 文件

ios - Swift 1.2 数组声明,额外的括号?

iphone - 如何以编程方式禁用按钮单击上的操作方法

iphone - 将类非自动引用计数导入我的项目时出错

ios - 从 UIAlertView 中的 UITextField 获取文本以设置标签的文本

ios - 无法连接到 URL ms-word URL 方案