如何限制 swift 中的 UILabel 字符?

How do you limit UILabel characters in swift?

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

如果您想将 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))
}

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))
        }

您还可以创建一个 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

中测试过

查看此答案:

我的版本是(Swift 5+):

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