首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动布局约束

自动布局约束
EN

Stack Overflow用户
提问于 2013-02-05 23:51:32
回答 1查看 781关注 0票数 2

我需要一个视图是垂直居中时,在肖像模式和移动到右边的横向(例如150像素)。

我试着设置了一些约束,但似乎无法确定:

代码语言:javascript
复制
[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永远不会实现。

或者我应该抛弃centerX的约束?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-06 00:26:35

我看到了两个选择:

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

第一种选择更简单,但如果一台新的苹果设备具有不同的尺寸,那么它就不太适合未来。如果使用第一个选项,则不需要@"H:|-(577)-[contentView]-(257)-|"约束,但需要一个约束来告诉contentView它的水平大小。

如果您想让我详细说明这两个选项,请告诉我。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14711447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档