2016-07-14 2 views
0

У меня есть подкласс UITableViewCell. В раскадровке я добавил несколько ярлыков и кнопок и создал соответствующие выходы, и я установил и изменил их соответствующие кадры с помощью инспектора размера. Макет выглядит хорошо для iPhone 6. На iPhone 5 вещи с экрана справа. В методе layoutSubviews подкласса UITableView я пытаюсь настроить кадр моих меток и кнопок. Когда сначала открывается табличное представление, кнопки и метки находятся в положениях, указанных для их соответствующих кадров в Storyboard, а не в кадре/позиции, которую я установил в layoutSubviews. Через мгновение они появляются в позициях, установленных в layoutSubviews. Иногда, однако, я вижу, что он возвращается к старой позиции раскадровки.Настройка подкласса UITableViewCell UILabel Frame

Любые идеи, что может случиться? Я хочу явно установить ярлыки и рамки кнопок и оставить их там, где я их разместил. Я не хочу использовать ограничения, поскольку они очень болезненны для использования в Storyboard, и часто не ведут себя хорошо или с хорошей детализацией.

+0

Возможно, это связано с потоком повторного использования клеток? Вместо подкласса 'UITableView' для переопределения' layoutSubviews() ', почему бы вам не попробовать отрегулировать кадр до повторного использования соты? ('Tableview (_: cellforRowAtIndexPath:)'). –

+0

Не настраивайте рамки. Установить ограничения и автозапуск сделает остальные – Paulw11

+0

Как мне создать пользовательскую ячейку с кнопками и ярлыками с определенным поведением, если я ее не подклассифицирую? Я не подклассифицирую только для переопределения layoutSubviews. У меня есть табличное представление с несколькими пользовательскими ячейками. – bhartsb

ответ

0

Если вы не используете ограничения, удалите использование автоматической раскладки и используйте класс размера.

enter image description here

+0

, который будет проектом широкого, не так ли? Я использовал ограничения на другом экране, и он был извилистым. И я уже упомянул Paulw11, что я использовал ограничения здесь на этом текущем экране и не смог добиться правильного интервала. Если у меня есть одна цифра, тогда между клавишей и цифрой больше места, чем я хочу. Так нет ли способа использовать автозапуск на одном экране, а не на другом? Если это действительно проект широкий, то если я не использую автозапуск, я отбрасываю работу на другой экран, и если я его использую, я отбрасываю работу, которую я сделал для этого текущего экрана. – bhartsb

+0

Это нехорошее решение, если мне приходится отключать автоматическую компоновку везде. – bhartsb

Смежные вопросы