Я загружаю некоторый текст справки из plist и отображаю то же в форме UILabels, помещенного в корпус в UIScrollView. Часть кода следует:
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 - были загружены, прежде чем вышеупомянутый код начал выполняться, и хорошо работать.