2015-08-24 3 views
3

У меня проблема с автоматической компоновкой (которую иногда я ненавижу).Autolayout: UITextFields с равной шириной в разных UITableViewCells

У меня есть три статических UITableViewCell s с UILabel и UITextField внутри каждого. Существует ограничение Horizontal Space между ними, установленными в 8 точках в первой ячейке.

Я хочу, чтобы ширина UITextField s в других ячейках соответствовала ширине первой. Я попытался использовать Equal Width Constraint, но когда я Ctrl + щелкнуть один UITextField и выпустить над первым, нет контекстного меню ограничений, я получаю это вместо этого.

enter image description here

Можно ли добиться того, чего я хочу?

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

Спасибо.

РЕШЕНИЕ: Как многие уже говорил в комментариях и ответах, не представляется возможным установить ограничение между видами в различных superviews, так что я сделал, чтобы создать единое представление для хранения всех этикеток и текстовых полей. Просто как тот. Спасибо всем за помощь.

+1

AFAIK у вас нет ограничений по ширине для детских просмотров, у которых есть разные родители. поэтому вы не можете увидеть эту опцию, когда вы нажимаете Ctrl + click – Bluewings

+0

Я вижу. Хорошо, я попробую другой подход. Благодарю. – WedgeSparda

+0

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

ответ

1

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

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

0

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

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