我正在從plist中加載一些幫助文本,並以UISabrollView中UILabels的形式顯示它們。代碼的部分如下:換行符在UILabel中不起作用
UILabel *sectionDetailLabel = [[[UILabel alloc] initWithFrame:CGRectMake(34, myOriginForThisSection, 286, 20)] autorelease];
sectionDetailLabel.backgroundColor = [UIColor clearColor];
sectionDetailLabel.numberOfLines = 0;
sectionDetailLabel.font = [UIFont systemFontOfSize:12];
sectionDetailLabel.textColor = [UIColor blackColor];
sectionDetailLabel.textAlignment = UITextAlignmentLeft;
sectionDetailLabel.lineBreakMode = UILineBreakModeWordWrap;
[baseScrollView addSubview:sectionDetailLabel];
[sectionDetailLabel setText:myStringForThisSection];
[sectionDetailLabel sizeToFit];
雖然任何「長」的文字就會越來越纏繞成多行正確,我無法使用換行符手動插入任何換行符「\ n」在「myStringForThisSection字符」。相反,我只看到UILabel中打印的字符'\'和'n'。
我查了一下,普遍認爲將numberOfLines設置爲0,將lineBreakMode設置爲有效值並調用sizeToFit(或者根據sizeWithFont設置UILabel的框架)應該這樣做。所有這些我都在上面的代碼中完成 - 並且在UILabel的多行中將未知長度的長字符串擬合時可以很好地工作。那麼在這裏可能會錯過什麼?
注意:所有使用的變量 - baseScrollView,myStringForThisSection和myOriginForThisSection - 在上面的代碼開始執行之前加載,並且工作正常。
如果字符串來自外部來源,會出現這種情況。如果它是在代碼中聲明/創建的(甚至可能在plist中),則換行符將被編碼。不過,如果該行爲空行,則換行符後面必須有空格。 – 2010-11-23 10:08:40