Я создал пользовательский UITableViewCell
с двумя метками и кнопкой.
Он вел себя идеально, как ожидалось, и выглядел так:
Позже я понял, что мне нужно использовать это конкретное представление в нескольких местах, одного из которых не было в TableView. Поэтому я решил удалить свою ячейку и создать вместо нее пользовательский UIView
- и создать пустой пользовательский UITableViewCell
, содержащий только этот пользовательский вид - ограниченный 0 во всех направлениях.
С такими же элементами и ограничениями UIView
получилось так, как показано в TableView в виде ячейки:
Все идентично. NumberOfLines
установлен на 0
, все ограничения одинаковы.
Я также заметил кое-что странное, что когда я повернул весь телефон в альбомную ориентацию, получилось так:
Именно так я и хотел бы выглядеть в пейзаже.
Если я сейчас поверну назад в портрет, вдруг это будет выглядеть так:
Теперь он внезапно выглядит точно так, как я хочу, чтобы он выглядел в портрете ... Мне просто пришлось перевернуть его в пейзаж и обратно в портрет ... Почему это? ..
Я поиграл с некоторыми переменными, среди которых: preferredMaxLayoutWidth
, и обнаружил, что если я установлю это значение равным размеру экрана (минус 16 * 2px), оно будет выглядеть так, как ожидалось при первом запуске в портретной ориентации. Однако я не хочу устанавливать это значение. В px нет магического числа, которое будет правильным. Все дело в том, чтобы правильно установить его на все размеры экрана и ориентации. Я, вероятно, мог бы переустанавливать предпочтительную ширину каждый раз, когда layoutSubviews
суперпредставления или как-то вызывается, но я решил, что должно быть решение для этого ..? Почему это работает для UITableViewCell
, а не для UIView
внутри a UITableViewCell
?
Я перепробовал все виды sizeToFit
и т. Д., И не нашел ни одного вопроса или ответа, который бы предназначался для этого конкретного различия в UIView и UITableViewCell ..