【问题标题】:How do you limit UILabel characters in swift?你如何快速限制 UILabel 字符?
【发布时间】:2016-01-02 16:57:04
【问题描述】:

我正在尝试将我的标签中的限制设置为 10 个字符,我是一个完全的编程新手,所以到目前为止这是我的第 3 个月......无论如何提前谢谢 :-)

【问题讨论】:

  • 没有足够的信息和代码。
  • 既然你已经给自己设置了一个限制,你怎么能指望在UILabel上设置一个?
  • 我认为这个问题很清楚,不需要代码来限制一个标签上的字符......这不像我在问如何编写一个复杂的函数然后代码是必要的

标签: swift uilabel character-limit


【解决方案1】:

您还可以创建一个String 扩展名并将其与任何文本字符串一起使用。您可以通过以下方式进行操作:

创建扩展:

extension String {
   func maxLength(length: Int) -> String {
       var str = self
       let nsString = str as NSString
       if nsString.length >= length {
           str = nsString.substring(with:
               NSRange(
                location: 0,
                length: nsString.length > length ? length : nsString.length)
           )
       }
       return  str
   }
}

您可以通过以下方式使用扩展:

label.text = "This is a Very Long Label".maxLength(length: 10)

之前的代码在 Swift 5.0

中测试过

【讨论】:

    【解决方案2】:

    如果您想将 UILabel 限制为 10 个字符,那么 您只需为其分配长度为 10 的文本。 您可以使用NSStringNSRange 来提取您需要的文本。

    let str = "This is a Very Long Label"
    let nsString = str as NSString
    if nsString.length >= 10
    {
      label.text = nsString.substringWithRange(NSRange(location: 0, length: nsString.length > 10 ? 10 : nsString.length))
    }
    

    【讨论】:

    • 当然,如果str开头的字符少于10个,这段代码会崩溃。
    【解决方案3】:

    看看这个答案:https://stackoverflow.com/a/39677331/2548473

    我的版本是(Swift 5+):

    extension String {
        func shorted(to symbols: Int) -> String {
            guard self.count > symbols else {
                return self
            }
            return self.prefix(symbols) + " ..."
        }
    }
    

    【讨论】:

      【解决方案4】:

      SWIFT 3

              let str = GL_GetNews[indexPath.row]["n_body"].stringValue
              let nsString = str as NSString
              if nsString.length > 0
              {
                   cell.newsDescription.text = nsString.substring(with: NSRange(location: 0, length: nsString.length > 200 ? 200 : nsString.length))
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-19
        • 2015-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多