是否有一种方法可以使用多行标签(myLabel.numberOfLines = 0)来禁用任何类型的换行,这样如果一行太长而无法放在标签的一行上,它就会停止/有点断裂关闭并没有包裹到下面的行?所以我可以使用" \ n"将字符串分配给标签的其他行。我知道太长的行会自动换行到下一行,但我不知道是否有没有换行选项。
所以如果我的标签最多行数为每行10个字符
var firstLine : String = "This is 16 chars"
var secondLine : String = "This is too long"
myLabel.text = firstLine + secondLine
// It would look like this:
输出:
This is 16
This is to
如图所示,即使它们不适合,它也会切断并且不会包裹每一行
答案 0 :(得分:0)
如果您有所需的标签长度,您可以尝试这种愚蠢的工作方法:要自己剪切字符串,请使用stringByPaddingToLength方法。
请尝试以下代码:
self.tempLabel.text = @"This is 16 chars fbaebfbefbefbeif";
self.tempLabel.text = [self.tempLabel.text stringByPaddingToLength:10 withString:@"" startingAtIndex:0];
看到魔法发生
答案 1 :(得分:0)
firstLine + secondLine
将成为1个字符串This is 16 charsThis is too long
,我不认为你可以做一些没有代码描述的东西,你必须手动将字符串剪切为10个字符并在最后添加\ n,所以它将变为This is 16\nThis is to
类似的东西:
var string = message
let fontAttributes = [NSFontAttributeName: font]
var size = (string as NSString).sizeWithAttributes(fontAttributes)
while size.width > label.width {
string.removeAtIndex(string.endIndex.predecessor())
size = (string as NSString).sizeWithAttributes(fontAttributes)
}
string = string+"\n"