【问题标题】:How to set the number of lines for a UILabel如何设置 UILabel 的行数
【发布时间】:2019-08-31 09:56:14
【问题描述】:

我目前正在做一个项目,我需要能够设置 UILabel 的行数。这意味着如果我输入 5,标签必须符合并返回 4 次(字符太少等问题不会成为问题)。下面我附上了一张图片,其中包含一个示例,以澄清我的问题:

到目前为止,我已经尝试通过设置 .numberOfRows 属性来做到这一点,但这只是对 UILabel 设置了一个限制,这不是我想要的(如果你好奇,下面有一些代码)。有什么帮助吗?

我的代码:

if Double(w!) > 277 {
    print("Values:")
    print(w!)
    let numRows = Int(w!/237)
    print(numRows)
    heightOfCell += Double(numRows)*20.5
    cell!.textLabel?.numberOfLines = numRows + 2
}

【问题讨论】:

  • 不清楚“标签必须符合并返回4次”是什么意思,所以不清楚目标是什么。您能否发布一些屏幕截图或其他内容,以阐明您要完成的工作?
  • @matt 我已经编辑了我的问题,您介意再看一下吗?
  • 好吧,在您的插图中,这似乎与更改文本换行的宽度有关。这可能是标签本身的宽度。或者它可能是首选的MaxLayoutWidth。
  • @BobSamuels 你是想说即使设置了属性numberOfLines,你的标签仍然只显示一行?
  • 如果我对您的理解正确,您希望强制标签以这样的方式布局,使其以给定的行数结束。这不能通过 UILabel 的标准接口轻松完成。 UILabel 的正常行为是填充行直到达到标签的宽度,然后为文本的其余部分添加新行,再次填充该行并根据需要添加其他行直到达到 numberOfLines .您应该在开源社区的某个地方寻找可随时使用的自定义标签实现,或者自己提出自定义解决方案。

标签: ios swift uitableview uilabel


【解决方案1】:

要在标签中添加更多行,可以打开标签属性,在标签属性中可以显示行选项,在此选项中可以添加更多行。

【讨论】:

    【解决方案2】:

    你的意思是这样的吗? 请记住,.numberOfRows 属性只会限制标签可以显示的行数。您还必须将文本分成几行。

        class NumberOfLinesLabel:UILabel{
    
        func setNumberOfLines(n:Int){
            self.numberOfLines = n
            let words = self.text?.split(separator: " ")
            let numOfWordsPerLine = (words?.count)!/n
            var insertedWords = 0
            self.text = ""
            for w in words!{
                if insertedWords == numOfWordsPerLine{
                    self.text = self.text! + "\n" + w
                    insertedWords = 0
                }else if self.text?.count == 0{
                    self.text = self.text! + w
                    insertedWords += 1
                }else {
                    self.text = self.text! + " " + w
                    insertedWords += 1
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-11-18
      • 2012-01-02
      • 2011-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多