我有一个带有多行 UILabel 的单元格,但是当文本的标签不适合框架时,不会显示任何点。我怎样才能解决这个问题?
问问题
23774 次
6 回答
52
你试过这个吗?
之前的 Swift 5:
yourLabel.adjustsFontSizeToFitWidth = NO;
yourLabel.lineBreakMode = NSLineBreakByTruncatingTail;
斯威夫特 5:
yourLabel.adjustsFontSizeToFitWidth = false
yourLabel.lineBreakMode = .byTruncatingTail
之前的 iOS6使用UILineBreakModeTailTruncation
于 2013-10-13T22:09:42.830 回答
12
如果您使用的是AttributedStrings,请注意您必须.lineBreakMode
将NSMutableParagraphStyle
.
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineBreakMode = .byTruncatingTail
// Add paragraphStyle to attributes, create AttributedString...
于 2018-03-28T08:40:45.007 回答
5
对于swift 2.0,它将是:
yourLabel.adjustsFontSizeToFitWidth = false;
yourLabel.lineBreakMode = NSLineBreakMode.ByTruncatingTail
对于swift 4.0,它将是:
yourLabel.adjustsFontSizeToFitWidth = false;
yourLabel.lineBreakMode = NSLineBreakMode.byTruncatingTail
于 2016-08-17T04:10:55.320 回答
3
如果换行模式对您不起作用,另一种选择是实际计算您的字符串将采用的长度,如果它比标签大小长,请自己添加“...”。
您将不得不使用以下代码来处理多行(但想法相似)
比如带你标签(比如detailLabel)
UILabel* detailLabel = cell.detailTextLabel;
CGSize expectedDetailLabelSize = [detailLabel.text sizeWithFont:detailLabel.font
constrainedToSize:maximumLabelSize
lineBreakMode:detailLabel.lineBreakMode];
于 2013-12-06T17:35:45.357 回答
0
斯威夫特 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)
参考。链接字符串截断
于 2019-11-27T11:59:54.857 回答
0
对于 SWIFT 3+
label.adjustsFontSizeToFitWidth = false;
label.lineBreakMode = NSLineBreakMode.byTruncatingTail;
于 2018-01-15T22:39:48.717 回答