【问题标题】:UILabel issue in changing width in autolayout在自动布局中更改宽度的 UILabel 问题
【发布时间】:2016-03-16 09:06:34
【问题描述】:

我正在尝试以编程方式更改 UILabel 的宽度。我知道我可以做到这一点

UILabel.frame.size = CGRectMake(x, y, width, height)

但我不想设置 x 和 y 值,以便它适用于每个手机型号。有什么建议可以解决这个问题吗?

【问题讨论】:

    标签: swift autolayout uilabel


    【解决方案1】:

    不需要为 UILabel 的宽度和高度添加约束,因为它们具有固有的内容大小,这取决于文本、字体、字体大小等属性...

    这篇文章 How to set UILabel only width and height and constraints programatically 是为 Objective-c 编写的,应该让您了解如何解决这个问题。

    【讨论】:

      【解决方案2】:

      您正在更改框架,这意味着您没有正确使用自动布局。
      如果您使用自动布局并且想要更改标签宽度,我希望您在标签上设置宽度约束并更改其constant 属性,然后请求更新布局。
      如果您确实应用了约束,请记住它们以编程方式接管框架,因此您的新框架可能会在布局更新后再次设置为其初始值。

      【讨论】:

        【解决方案3】:

        试试:

        let newWidth: CGFloat = 100.0 //However wide you want your label to be
        myLabel.frame.size.width = newWidth
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-01-14
          • 1970-01-01
          • 1970-01-01
          • 2014-01-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多