gpt4 book ai didi

ios - 自动布局 iPad 的纵向和横向

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:41:59 26 4
gpt4 key购买 nike

鉴于我们只有适用于 iPad 纵向和 iPad 横向的通用尺寸类别,您最终如何针对不同方向自定义 iPad 的自动布局行为/约束?

我想在肖像中有这样的东西:enter image description here

这在风景中:enter image description here

最佳答案

在 iOS 8 中,您可以使用 viewWillTransitionToSize:withTransitionCoordinator:,以便在旋转 Controller 时收到通知。使用高度与宽度的比率来确定您要移动的方向,并相应地调整您的约束。您可以使 IBOutlets 成为 View 的高度和宽度约束,并在该方法内更改它们的常量值。

另一种方法是同时使用乘数和常量,自动调整旋转约束。例如,相对宽度约束的公式为:

subview.width = superview.width * 乘数 + 常量

因此,例如,如果您想要纵向全宽 (768) 和横向全宽 350,您可以求解这两个方程,

768 = 768 * m + c   and   350 = 1024*m + c

Solving those, gives you m= -1.6328 and c= 2022

要使用它,您需要在 IB 中为您的 subview 设置宽度约束,但选中“在构建时删除”复选框,这样它就会被删除并替换为您在代码中添加的内容。

- (void)viewDidLoad {
[super viewDidLoad];
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.subView attribute:NSLayoutAttributeWidth relatedBy:0 toItem:self.view attribute:NSLayoutAttributeWidth multiplier:-1.6328 constant:2022]];
}

通常,您可以在 IB 中完成所有这些操作,但前提是乘数为正;我已经用这些数字试过了,系统不允许我使用负数作为乘数。

关于ios - 自动布局 iPad 的纵向和横向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26549987/

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