【问题标题】:How to do multiline UILabel in ios?如何在ios中做多行UILabel?
【发布时间】:2011-12-21 05:15:59
【问题描述】:

我正在动态填充标题 (UILabel)。有时它有点太长,IOS会挤压字体以适应宽度。有没有办法用相同的字体大小做多行?

【问题讨论】:

    标签: objective-c ios uilabel multiline


    【解决方案1】:

    是的,您在代码中将 numberOfLines 设置为 0,将 .lineBreakMode 设置为 UILineBreakModeWordWrap,或者如果您的标签在 IB 中定义,则为等效项。

    【讨论】:

      【解决方案2】:

      adjustsFontSizeToFitWidth 设置为NO,将numberOfLines 设置为0。

      numberOfLines Docs

      此属性控制要使用的最大行数,以便 使标签的文本适合其边界矩形。默认值 此属性为 1。删除任何最大限​​制,并使用尽可能多的 行,将此属性的值设置为 0。

      如果您使用此属性约束您的文本,则任何不 适合最大行数和边界内 使用适当的换行符截断标签的矩形 模式。

      当使用 sizeToFit 方法调整接收器的大小时,调整大小 考虑到存储在此属性中的值。例如,如果 此属性设置为 3,sizeToFit 方法调整接收器的大小 这样它就足够显示三行文本了。

      您可能还需要指定 lineBreakMode,除非默认的 UILineBreakModeWordWrap 适合您的需要。

      【讨论】:

      • 值得注意的是,UILineBreakModeWordWrap 自 iOS 6.0 起已弃用,取而代之的是 NSLineBreakByWordWrapping
      • 无需将adjustsFontSizeToFitWidth 设置为NO - 默认为NO
      【解决方案3】:

      我刚刚使用 LineBreak 模式来截断 Tail 和 setNumberOfLines 为 0 并且它为我工作。 标签现在是多行的。

      【讨论】:

      • 将自动收缩设置为最小字体大小。并检查收紧字母间距。
      • 这是必不可少的!自动换行不做,必须设置截断模式
      【解决方案4】:

      使用UILabel属性如下:

      textLabel.lineBreakMode = NSLineBreakByWordWrapping;  
      textLabel.numberOfLines = 0;
      

      【讨论】:

        猜你喜欢
        • 2013-07-03
        • 1970-01-01
        • 1970-01-01
        • 2021-08-13
        • 2015-07-26
        • 1970-01-01
        • 1970-01-01
        • 2012-09-29
        • 1970-01-01
        相关资源
        最近更新 更多