2016-11-28 32 views
0

我有这样的简单的代码,初始化UILabelUIView的帧自动复位

在第一打印,框架宽度/高度是正确的,但在第二,帧的所有的值都为0。

let messageBoxFrame = CGRect(x: 0, y: 0, width: 1024, height: BAND_HEIGHT) 
print(messageBoxFrame) 
let messageBox = UILabel(frame: messageBoxFrame) 
messageBox.textAlignment = .center 
messageBox.textColor = UIColor.white 
messageBox.backgroundColor = UIColor.blue 
messageBox.sizeToFit() 
print(messageBox.frame) 
+0

如果您使用自动布局,但不想设置限制,补充一点: 'messageBox.translatesAutoresizingMaskIntoConstraints = TRUE' – Jeremy

回答

1

messageBox.sizeToFit()这行代码会调整UILabel

按本sizeToFit()

当您要调整当前视图的大小时,请调用此方法,以使其 使用最合适的空间量。特定的UIKit视图根据自己的内部需求调整自己的大小 。在某些情况下,如果某个 视图没有超级视图,则它可能会将其自身设置为屏幕 界限。因此,如果您希望给定的视图将其自身调整为其父级 视图,则应在调用此方法之前将其添加到父视图。

+0

感谢的,这是现在的工作。我认为我可以在标签中使用'sizeToFit'作为中心文本 – Khorwin