ios - 自动布局愚蠢(我的)?

标签 ios autolayout

我在我的一个项目中使用了自动布局,但在我认为应该是一项微不足道的任务时遇到了麻烦。

例如,我有两个文本框彼此下方。我在两者之间创建了一个 5 点的垂直间距约束。

我希望如果我移动顶部的文本框(使用 setFrame),约束将意味着底部的文本框会自动移动以强制执行约束?

我的想法对吗?还是我以一种不应该的方式使用自动布局。 IE。我误解了它的目的。或者我应该使用 setFrame 以外的其他方式移动顶部文本框吗?

任何输入都会很棒。提前致谢:-)

附言。我玩过 using: setTranslatesAutoresizingMaskIntoConstraints 这似乎有效。但是,这似乎不是执行此操作的正确方法。我最初的想法是自动布局应该用很少的代码处理大小/位置关系,在这种情况下,我希望它可以用零代码处理。

最佳答案

您不能使用 setFrame 来执行此操作。自动布局决定框架。如果您在事后更改它,约束不会自动更新。

您可以获得对决定顶部框的 Y 位置(以编程方式创建它或使用 IBOutlet 时)的约束的引用并更改其值。这将触发更新以重新计算所有内容的位置并再次运行布局。

您可以通过更改 NSLayoutConstraint 对象上常量属性的值来实现。

Reference Docs Here

关于ios - 自动布局愚蠢(我的)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27326465/

相关文章:

ios - 将 UIView 与方法 id 发送者进行比较

ios - 为什么 UIView 的 intrinsicContentSize 总是返回 (-1.0, -1.0)?

iphone - UIScrollview 仅在拖动 uiviews 时滚动

ios - 检查 Swift 中的协议(protocol)可用性

ios - 带有意外 NSAutoresizingMaskLayoutConstraint 的 AutoLayout 约束问题

ios - 无法在 TableView 中使用自动布局约束

ios - 如何防止我的 UISplitViewController 在旋转到纵向时显示主 VC?

ios - 关于 tableView 双对称

ios - 核心数据、NSNumber、整数 32 和整数 64

ios - Objective-C 消息被发送到已释放的 'UIActivityIndicatorView' 对象