如果UILabel的内容不适合,请更改文本末尾的默认"..."

Mat*_*yhr 6 iphone objective-c uilabel

我的iPhone项目中有一个UILabel,它有一个固定的宽度和高度,但它的内容可能会根据用户的不同而有所不同.有时文本对UILabel来说很大,那就是当字符串:'...'被添加到行尾时.我想知道我是否可以将此字符串更改为其他内容,例如:'(more)'.

谢谢!

Zig*_*saz 2

不幸的是,iOS 上似乎不包含这样的选项,根据类似的问题:How to Change truncatecharacters in UILabel?

然而,正如上述问题的答案所述,这可以很容易地自己完成。您真正需要做的就是找到字符串被截断的位置并减去您选择的结束字符所需的数量。然后将余数放入单独的字符串中。

对于这种方法,这个答案也很有用:

正如 Javanator 所说,你必须自己进行截断。您应该在 NSString 类的 UIKit 添加中使用 sizeWithFont:forWidth:lineBreakMode: 消息来获取具有特定字体的字符串的宽度。这将处理所有类型的字体。