有许多指南在那里谈论自动布局,如:http://www.raywenderlich.com/83129/beginning-auto-layout-tutorial-swift-part-1
现在,约束似乎并不超级复杂,除了当它试图在ViewController中的UIImageView上设置它们时,勾选“使用自动布局”,我无法在我的生活中设置任何约束,因为当我单击用于实现这一点的三个按钮中的任何一个时,所有用于设置约束的选项都是灰色的。
我相信这是简单的...帮个忙?
我在参考资料中发现了一些东西:“如果只选择了一个元素,则禁用需要多个元素的约束选项。”但是在任何一个指南中,我都不需要选择多于UIImageView的元素来设置约束。
编辑:添加的图像:
的数据
的
8条答案
按热度按时间cyvaqqii1#
在我的例子中,Xcode 11.2以某种方式设置了我的
UIButton
tranlates mask into constraints
的布局属性。所以我从大小检查器中将其更改为automatic
,并且它是固定的。xytpbqjk2#
如果你移动一个视图(例如,把它移进然后移出一个TableView),那么它将神秘地失去它接受约束的能力。所以构建一个新的视图。XCode 11.4.1
r8uurelv3#
这是因为你从视图控制器中删除了根视图。当你将UIViewController添加到故事板中时,你可以看到:
的数据
如果删除此视图并添加UIImageView,则会看到以下内容:
的
的
因此,添加UIView作为根视图,添加UIImageView作为根视图的单个子视图。然后您可以使用约束:
型
quhf5bfb4#
你不能设置约束的原因是因为你的图像视图不在视图中,它是基础视图。为了在任何类型的视图上设置约束,它必须在另一个视图中。
u2nhd7ah5#
自动布局约束要么是两个对象之间的关系,要么是大小约束。在这个例子中,你只有一个对象,所以这里没有自动布局约束。大小约束也不适用,因为这是你的xib的根视图。
不知道你想在这里实现什么,但是如果你把你的UIImageView放在这个视图控制器的内容视图上,而不是改变它的类,你就有了一套完整的自动布局约束。
ztyzrc3y6#
x1c 0d1x的数据
我所做的一切,干净和简单的是:-在您的视图,添加UIImageView -选择您的UIImageView -点击“添加新的约束”按钮(如所附的图片)。
如您所见,UIImageView已被选中。
唯一可能的解释是您可能忘记选择它。
欢呼
svdrlsy47#
我遇到了同样的情况。但在我的情况下,我试图将imageview插入到水平堆栈视图中。奇怪的是,我无法为imageview添加宽度和高度值的约束。我只能在删除当前并添加新的imageview后添加约束。
nbnkbykc8#
在我的情况下,我在故事板上有约束对象,我想链接到我的视图控制器中的视图上的约束,我链接它们的顺序是允许我链接它们的。
如果我已经将视图对象链接到视图控制器中的视图,我就不能在故事板中向对象添加约束,并且由于不能这样做,就不能将这些约束与视图控制器上的约束相关联。
但是如果我在将视图对象关联到控制器上的视图之前就在视图对象上创建了约束,那么我就可以先链接约束,然后再链接视图本身。