UIView的帧自动复位
问题描述:
我有这样的简单的代码,初始化UILabel
UIView的帧自动复位
在第一打印,框架宽度/高度是正确的,但在第二,帧的所有的值都为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)
答
messageBox.sizeToFit()
这行代码会调整UILabel
帧
当您要调整当前视图的大小时,请调用此方法,以使其 使用最合适的空间量。特定的UIKit视图根据自己的内部需求调整自己的大小 。在某些情况下,如果某个 视图没有超级视图,则它可能会将其自身设置为屏幕 界限。因此,如果您希望给定的视图将其自身调整为其父级 视图,则应在调用此方法之前将其添加到父视图。
+0
感谢的,这是现在的工作。我认为我可以在标签中使用'sizeToFit'作为中心文本 – Khorwin
如果您使用自动布局,但不想设置限制,补充一点: 'messageBox.translatesAutoresizingMaskIntoConstraints = TRUE' – Jeremy