【问题标题】:Adding UILabel programmatically only by code. Sizing ? (Swift)仅通过代码以编程方式添加 UILabel。尺码? (迅速)
【发布时间】:2015-10-13 06:22:24
【问题描述】:

我尝试通过代码添加 UILabel,但效果并不理想。

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

当然,我可以简单地将 UILabel 放大,以便文本适合。但我认为这不是最佳做法。

如何根据字体大小调整 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;

使用 sizeToFit() 更新解决方案

感谢有关 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;

【问题讨论】:

  • 你试过sizeToFit吗?
  • 非常感谢你成功了!我用更新的代码更新了我的问题。

标签: swift size uilabel font-size


【解决方案1】:

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

【讨论】:

  • 但是如何在不设置框架的情况下更改原点?
  • 在 Swift 中,你可以说 label.frame.origin = CGPoint(...)。或者你可以使用label.center = CGPoint(...)
  • 谢谢,那就更好了。我会为其他人更新代码。
【解决方案2】:

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

你要找的方法是sizeWithAttributes

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 2018-07-05
    相关资源
    最近更新 更多