gpt4 book ai didi

ios - 自动布局约束

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:16:15 25 4
gpt4 key购买 nike

我需要一个 View 在纵向模式下垂直居中并在横向模式下向右移动(比如 150 像素)。

我试过设置一些限制,但似乎无法确定:

[myImage addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(577@700)-[contentView]-(257@800)-|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(contentView)]];

NSLayoutConstraint *myConstraint = [NSLayoutConstraint constraintWithItem:contentView
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:myImage
attribute:NSLayoutAttributeCenterX
multiplier:1.0
constant:-1];
myConstraint.priority = 700;

[myImage addConstraint:myConstraint];

这适用于横向模式,但不适用于纵向模式。在肖像中,左侧约束 (570@700) 失败,然后左侧约束可以成功 (257@800) 并且永远不会实现中心 X。我需要第一组(570@700 和 257@800)都失败,以便它可以求助于中心 X 约束。

或者我应该放弃 centerX 约束?

最佳答案

我看到两个选项:

  • 添加使 contentView 的 CenterX = myImage 的 CenterX 的约束,并保存对该约束的引用。当设备旋转到横向时,将Constraint的常量设置为150;旋转到纵向时,将常量设置为 0。
  • 当设备旋转时,删除 contentView 的水平位置和大小约束,并为您的设备方向添加适当的约束。

第一个选项更简单,但如果新的 Apple 设备具有不同的尺寸,则不太适合 future 。如果您选择第一个选项,则不需要 @"H:|-(577)-[contentView]-(257)-|" 约束,但您需要一个约束来告诉 contentView 它的水平尺寸。

如果您希望我详细说明任一选项,请告诉我。

关于ios - 自动布局约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14711447/

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