我有一个带有多行UILabel的单元格,但是当文本的标签不适合框架时,不会显示任何点。我该如何解决这个问题?
答案 0 :(得分:40)
你试过这个吗?
yourLabel.adjustsFontSizeToFitWidth = NO;
yourLabel.lineBreakMode = NSLineBreakByTruncatingTail;
之前 iOS6 使用UILineBreakModeTailTruncation
答案 1 :(得分:5)
对于 swift 2.0 ,它将是:
yourLabel.adjustsFontSizeToFitWidth = false;
yourLabel.lineBreakMode = NSLineBreakMode.ByTruncatingTail
对于 swift 4.0 ,它将是:
yourLabel.adjustsFontSizeToFitWidth = false;
yourLabel.lineBreakMode = NSLineBreakMode.byTruncatingTail
答案 2 :(得分:4)
如果您使用的是 AttributedStrings ,请注意,您必须将.lineBreakMode
设置为NSMutableParagraphStyle
。
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineBreakMode = .byTruncatingTail
// Add paragraphStyle to attributes, create AttributedString...
答案 3 :(得分:3)
如果换行模式不起作用,另一个选择是实际计算字符串的长度,如果它长于标签大小,请自行添加“...”。
您必须使用以下代码来处理多行(但想法类似)
例如,带上标签(例如detailLabel)
UILabel* detailLabel = cell.detailTextLabel;
CGSize expectedDetailLabelSize = [detailLabel.text sizeWithFont:detailLabel.font
constrainedToSize:maximumLabelSize
lineBreakMode:detailLabel.lineBreakMode];
答案 4 :(得分:0)
适用于SWIFT 3 +
label.adjustsFontSizeToFitWidth = false;
label.lineBreakMode = NSLineBreakMode.byTruncatingTail;
答案 5 :(得分:0)
Swift 4.0示例:
extension String {
/*
Truncates the string to the specified length number of characters and appends an optional trailing string if longer.
- Parameter length: Desired maximum lengths of a string
- Parameter trailing: A 'String' that will be appended after the truncation.
- Returns: 'String' object.
*/
func trunc(length: Int, trailing: String = "…") -> String {
return (self.count > length) ? self.prefix(length) + trailing : self
}
}
let str = "I might be just a little bit too long".truncate(10)
参考链接String Truncate