有很多关于自动布局的指南,例如: http://www.raywenderlich.com/83129/beginning-auto-layout-tutorial-swift-part-1
现在约束似乎并不超级复杂,除了当尝试在 ViewController 中的 UIImageView 上设置它们时,勾选“使用自动布局”后,我一生都无法设置任何约束,因为当我单击用于实现此目的的三个按钮中的任何一个时,用于设置约束的所有选项都会变灰。
我确信这很简单......没什么帮助?
我在参考资料中发现了一些内容:“如果仅选择了一个元素,则需要多个元素的约束选项将被禁用。”但在所有指南中,我都不需要选择超过 UIImageView 来设置约束。
编辑:添加图像:
就我而言,Xcode 11.2 以某种方式设置了我的
UIButton
tranlates mask into constraints
的布局属性。所以我从尺寸检查器将其更改为 automatic
并且它已修复。
如果您移动视图(例如,将其移入然后移出 TableView),那么它将神秘地失去接受约束的能力。所以建造一个新的。 XCode 11.4.1
无法设置约束的原因是因为您的图像视图不在视图中,它是基础视图。为了对任何类型的视图设置约束,它必须位于另一个视图内。
自动布局约束是两个对象之间的关系或尺寸约束。本示例中只有一个对象,因此此处不适用自动布局约束。大小限制也不适用,因为这是 xib 的根视图。
不确定您想在这里实现什么,但是如果您将 UIImageView 放置在此视图控制器的内容视图上而不是更改其类,您将拥有全套自动布局约束。
我也遇到过同样的情况。但就我而言,我尝试将 imageview 插入水平堆栈视图。奇怪的是,我无法为 imageview 添加宽度和高度值的约束。 我只能在删除当前图像并添加新的图像视图之后添加约束。
在我的情况下,我在故事板上有约束对象,我想将它们链接到视图控制器中视图上的约束,并且链接它们的顺序允许我链接它们。
如果我已经将视图对象链接到视图控制器中的视图,则我无法向情节提要中的对象添加约束,并且如果无法这样做,则无法将这些约束关联到视图控制器上的约束.
但是,如果我在将视图对象关联到控制器上的视图之前创建了视图对象的约束,那么我可以首先链接约束,然后再链接视图本身。
希望这对某人有用。