Запрет изменения фрейма textLabel в UITableViewCell при повороте устройства - PullRequest
0 голосов
/ 17 декабря 2011

У меня есть простой UITableViewController подкласс с несколькими UITableViewCell с. Я использую imageView и textLabel в каждой ячейке.

Когда я поворачиваю устройство в / из портретной / альбомной ориентации, рамка textLabel изменяется. Изменение отлично подходит для поворота портрета в ландшафт. Однако при повороте назад к книжной или альбомной ориентации рамка меняется на «неправильное» значение (текст неоправданно оправдан).

Как мне решить эту проблему?

У меня была похожая проблема с изменением кадров imageViews. Я решил это, создав подкласс UITableViewCell и установив для кадра правильное значение в layoutSubviews. Здесь есть только одно значение CGRect, которое мне нужно запомнить (и я просто жестко его кодирую).

textLabel отличается: мне нужно отслеживать два фрейма (по одному для каждой ориентации), и я думаю, что значения фреймов будут зависеть от текста textLabel. Поэтому добавление двух переменных экземпляра CGRect в мой подкласс UITableViewCell является вариантом. Однако я думаю, что есть более простое решение.

1 Ответ

0 голосов
/ 17 декабря 2011

Проблема была cell.textLabel.numberOfLines = 0; в cellForRowAtIndexPath.Установка numberOfLines в три раза решила проблему.

Мне также пришлось установить self.textLabel.frame.origin.x в жестко заданное значение в layoutSubviews.

Не уверен, что я полностью понимаю, что происходит здесь.

...