我试图完全用代码而不是IB创建UILabel

我希望固定x,y角的位置和宽度,但是高度要根据要显示的文本量以及要环绕和居中的文本而变化。文本是从其他地方填充的。 (不过通常不会超过2行)

我已经走了这么远,但不确定如何使height变量和要包装的文本:

instructLabel = UILabel(frame: CGRectMake(ScreenWidth/2-350, ScreenHeight-ScreenHeight*0.2, 700, 50)) // Guess I don't want the 50 height here though?
instructLabel.backgroundColor = UIColor.blackColor()

instructLabel.preferredMaxLayoutWidth = 700 // does this conflict with above or override?
instructLabel.lineBreakMode = .ByWordWrapping
instructLabel.textAlignment = NSTextAlignment.Center

instructLabel.text = ""
instructLabel.font = FontSmall
instructLabel.textColor = UIColor.whiteColor()
self.addSubview(instructLabel)

最佳答案

您应该使用CGRectGetMidXCGRectGetMidY常量,而不要计算ScreenWidth和ScreenHeight值。

instructLabel = UILabel(frame: CGRectMake(CGRectGetMidX(self.view.frame),CGRectGetMidY(self.view.frame),self.view.frame,self.view.frame))

07-27 13:40