Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you limit UILabel characters in swift?

I'm trying to set a limit in my label to 10 characters, I'm a complete newbie to programming in general so its my 3rd month so far... anyway thanks in advance :-)

like image 723
Krazyowl Avatar asked Dec 02 '22 16:12

Krazyowl


2 Answers

You can also create a String extension and reuse it with any text string.. You can do it in the following way:

create the extension:

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

you can use the extension in the following way:

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

the previous code was tested in Swift 5.0

like image 131
Juanes30 Avatar answered Jan 03 '23 11:01

Juanes30


If you want to limit the UILabel to just 10 characters then you just have to assign it with a text with length of 10. You can use NSString and NSRange to extract the text you need.

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))
}
like image 31
Christian Abella Avatar answered Jan 03 '23 10:01

Christian Abella