2010-10-25 2 views
0

У меня есть несколько UILabels на мой взгляд с их высотой, установленной с помощью sizeWithFont:.вопрос с вращением и uilabels с размером, установленным с использованием размера NSStringWithFont

Я установил autoreszingMask на гибкую ширину и высоту, однако при повороте изменений ширины (я предполагаю, что ширина окна self.view меняется и его ширина равна по сравнению с self.view), но высота его не изменяется чтобы соответствовать содержимому снова. Это приводит к большому пробелу сверху и снизу.

Просто интересно, как бы я хотел поменять размер UILabel на вращение? Есть ли какой-либо автоматический способ сделать это, или есть способ получить все UILabels и повторно делать sizeWithFont, когда устройство повернуто?

UILabels - это подразделы UIView heirarchies, используемые в качестве заголовков для разделов в моем UITableView.

Благодаря Том

ответ

0

Проблема заключалась в наличии гибкого левого и правого края на слегка смещенной uilabel.

Если метка не центрирована, вам нужно выбрать влево или вправо и задать гибкое поле для одного из них.

1

Вы должны действительно отправить sizeToFit в любой UIView, особенно UILabel, вместо того, чтобы заставить некоторый произвольный размер на них.

Наилучший подход обычно заключается в том, чтобы сначала установить максимальную ширину и высоту тока, затем отправить sizeToFit, а затем при необходимости изменить ширину. В случае многострочных меток это выглядит как самый надежный способ избежать ошибок макета.

+0

sizeToFit приводит к действительно иррациональному поведению ... как вы собираетесь его использовать? Спасибо –

+0

В чем проблема, которую вы видите? – Costique

+0

ну ... я действительно не знаю. Кажется, просто выберите случайную ширину и высоту, иногда отрезав текст, а иногда просто странно высоко. Поворот устройства только изменяет ширину. –