仅通过代码以编程方式添加UILabel。尺码? (SWIFT)

时间:2015-07-23 05:40:57

标签: swift size uilabel font-size

我尝试按代码添加UILabel,但不是预期的。

使用以下代码我可以看到标签,但标签的高度不正确,如您在附加屏幕中看到的那样。我想要uilabel大小,所以标签的高度对应于fontsize。

当然,我可以简单地将UILabels加大,以便文本适合。但我认为这不是最佳实践。

如何根据fontsize调整UILabel的大小?

var uilabel1=UILabel();
uilabel1.frame=CGRectMake(0, drawy, screenwidth, ititlesize);
uilabel1.text=sTextViewOptionsTitle;
uilabel1.font = UIFont(name: uilabel1.font.fontName, size: 28);
self.view.addSubview(uilabel1);
var lastelementheigth=uilabel1.frame.height;

enter image description here

使用sizeToFit()

的UPDATE解决方案

感谢有关sizeToFit()的答案。这样就可以通过一些额外的代码来定位控件。 更新代码:

  var uilabel2=UILabel();
    //uilabel2.frame=CGRectMake(0, drawy, screenwidth/2, DropdownHeigth);
    uilabel2.text=sTextSizeTextViewer;
    uilabel2.font = UIFont(name: uilabel2.font.fontName, size: iFontsize_Option);
    uilabel2.sizeToFit();
    uilabel2.frame.origin = CGPoint(x: 0, y: drawy);

    self.view.addSubview(uilabel2);
    lastelementheigth=uilabel2.frame.height;

2 个答案:

答案 0 :(得分:1)

您可能只需要致电-sizeToFit。这会根据标签的内容将标签的大小更改为“首选”大小。然后,如果需要,您可以重新定位原点或中心。

答案 1 :(得分:0)

之前有人问过 - 看看: Replacement for deprecated sizeWithFont: in iOS 7?

您正在寻找的方法是sizeWithAttributes