我在其他视图中有一个UILabel
项目描述,全部使用Interface Builder中的约束进行布局 - 您可以在下面的图像中看到所有相关约束。行数也设置为0
。
我还没有设置高度限制,因为我希望UILabel
根据它包含的文本调整大小。相反,发生的事情就在
[self.view layoutIfNeeded];
调用,UILabel
的高度设置为0
。即使我没有将其他文本设置为UILabel
,它也会在Interface Builder中设置默认值项目描述。
上面的项目标题标签设置方式相同,但不会被压缩到0
,所以我有点困惑。
任何人都有过这种行为的经历吗?
答案 0 :(得分:12)
我设法通过在Interface Builder中将UILabel
vertical compression resistance priority
设置为1000
(默认750
)来解决此问题。
由于我的视图嵌入在另一个视图中,并且父视图的底部依赖于最低子视图的底部,我只推测没有高度约束的UILabel
被挤入布置意见的过程。可能在链条的某个地方玩其他约束的优先级会产生相同的结果,但我无法成功地做到这一点。然而,上面的解决方案是有效的,这在我的情况下已经足够了。
希望这有助于某人。
答案 1 :(得分:1)
设置3约束
1.领导空间到superview
2.Trailing space to superview
3.Top space to superview
然后
$("#header").fadeOut(500, //Speed
function () { //On fadeOut complete
$(this).css("background-image", "url(img2.jpg)") //Change BG
.fadeIn(); //FadeIn
});
答案 2 :(得分:1)
从标签拖动到自身>选择高度>将高度常量设置为0并将等于(==)更改为大于或等于(> =)
答案 3 :(得分:1)
我认为您需要在标签上设置5个约束:
然后在控制器中在约束高度上添加一个IBOutlet(让我们说像labelHeight)。
因此,在viewDidLoad中,您将能够设置此约束值:
initial_list = raw_input().split() # split(' ') works, but you don't actually need the ' ',
# split() on its own does the same job here
if len(initial_list) <= 1000:
actual_integers = map(int, initial_list) #Moved to here. Note that
#actual_integers is a list
#so for the following comparison
#you just want to look at the max
#and min (individual values)
if min(actual_integers) >= 1 and max(actual_integers) <= 1000:
print sum(actual_integers)
else: #Just added two nice messages to the user if it doesn't print out.
print 'integers must be in range 1-1000 inclusive'
else:
print 'your list must have 1000 integers or fewer'
答案 4 :(得分:1)
AutoLayout
中的 UIViewController
无法满足您设置的所有constraints
,因此会忽略UILabel
上的那些,从而导致压缩状态。您应该查看constraints
中的其他UIViewController
,并将priority
的{{1}}设置为更高的数字。