我的mandist(X/Y,XD/Y,D,right) :-
XD is X+D,
XD < 4.
mandist(X/Y,X/YD,D,up) :-
YD is Y+D,
YD < 4.
mandist(X/Y,XD/Y,D,left) :-
XD is X-D,
XD > 0.
mandist(X/Y,X/YD,D,down) :-
YD is Y-D,
YD > 0.
内有一个视图,它有4个约束:左,右和底的空格为0,它有方面无线电。它看起来像这样:
UIViewController
我想插入具有动态尺寸的 ______ _
| | \
| | |
| | |- ViewController
| | |
|______| |
|______| <- View _/
和UIView
的中心,我希望它留在中心位置。我在代码中进行了大小调整,但现在我希望将其置于自动布局中心,但是当我水平和垂直居中时,它告诉我需要更多ImageView
大小的约束。
如果ImageView
留在中心并且自动布局不抱怨这些缺失的尺寸限制,我该怎么办?
答案 0 :(得分:1)
根据您的问题,我假设您在Interface Builder中进行设置,如果我错了,请更正我。
您的问题是在编译时未完全指定布局。 UIImageView
具有可以完成布局的内在内容大小,但由于您当时没有为图像视图设置图像,因此尚未指定。
您可以在UIImageView
的尺寸检查器中设置占位符尺寸。这在运行时没有任何影响,但告诉编译器稍后会有内在的内容大小。
答案 1 :(得分:1)
只需在Interface Builder中为图像视图设置图像。
(您可以使用您喜欢的任何图像作为占位符,并在运行时通过代码更改它。)
当您将具体图像指定给UIImageView
时,它会假定intrinsicContentSize
等于图像的大小。这样它有一个定义的宽度和高度,如果你约束它的位置(x和y),那么布局是明确的,Interface Builder不会抱怨(即如果你的布局的其余部分是完美的)。
如果您不想将图像用作占位符,则必须手动设置图像视图的宽度和高度,以便在iCaramba's answer中所述的Interface Builder中使用。