Я загружаю некоторый текст справки из списка и отображаю его в форме UILabels, размещенной в UIScrollView. Часть кода выглядит следующим образом:
</p>
<pre><code> 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'. Вместо этого я вижу только символы «\» и «n», напечатанные в UILabel, где бы я ни хотел перенос строки.
Я искал это, и общее согласие заключалось в том, что установка numberOfLines в 0, установка действительного значения lineBreakMode и вызов sizeToFit (или установка фрейма UILabel на основе sizeWithFont :) должны подойти. Все, что я, кажется, делаю в приведенном выше коде - и прекрасно работает, когда в UILabel вставляются длинные строки неизвестной длины в несколько строк. Так чего здесь не хватает?
Примечание. Все используемые переменные - baseScrollView, myStringForThisSection и myOriginForThisSection - были загружены до того, как вышеуказанный код начал выполняться, и работают нормально.