如何限制 swift 中的 UILabel 字符?
How do you limit UILabel characters in swift?
我正在尝试将我的标签设置为 10 个字符的限制,我是一个完全的编程新手所以到目前为止这是我的第 3 个月......无论如何提前感谢:-)
如果您想将 UILabel 限制为仅 10 个字符,则
你只需要给它分配一个长度为 10 的文本。
您可以使用 NSString
和 NSRange
来提取您需要的文本。
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) + " ..."
}
}
我正在尝试将我的标签设置为 10 个字符的限制,我是一个完全的编程新手所以到目前为止这是我的第 3 个月......无论如何提前感谢:-)
如果您想将 UILabel 限制为仅 10 个字符,则
你只需要给它分配一个长度为 10 的文本。
您可以使用 NSString
和 NSRange
来提取您需要的文本。
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) + " ..."
}
}