我正在尝试将标签中的限制设置为 10 个字符,我是一般编程的新手,所以到目前为止这是我的第 3 个月......无论如何提前谢谢:-)
问问题
11722 次
4 回答
11
您还可以创建一个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中测试过
于 2019-04-12T18:07:47.163 回答
9
如果您想将 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))
}
于 2015-10-05T23:01:19.130 回答
0
看看这个答案: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) + " ..."
}
}
于 2021-09-28T10:15:14.767 回答
-2
斯威夫特 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))
}
于 2017-08-06T10:48:05.647 回答