Создание UIView в Интерфейсном Разработчике, который автоматически центрирует себя, когда добавляется как подпредставление - PullRequest
3 голосов
/ 08 февраля 2010

Я создал xib UIView в Интерфейсном Разработчике и попробовал все, что мог, чтобы указать, что UIView должен центрироваться, привязываться в центре, ориентироваться в центральных координатах и ​​т. Д. И т. Д.

Но всякий раз, когда я добавляю его как подпредставление в коде, мне также приходится программно устанавливать его фрейм с помощью CGRectMake(), иначе он всегда будет добавляться в верхний левый угол своего родителя. Математика переосмысливать это бессмысленно и безобразно, так что я полагаю, что я просто немного не капризничаю в инспекторе IB.

Может ли кто-нибудь подтвердить, что это возможно, и если да, что мне нужно сделать в IB для достижения этой цели?

Ответы [ 2 ]

1 голос
/ 08 февраля 2010

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

Либо это, либо определите прямоугольник, в который входит представление с IB (я представляю контейнерное представление), и просто установите рамку представления, которое вы добавляете в containerView.bounds (bounds - это независимое от позиции значение и т. Д. X , у будет 0, а размер будет равен размеру контейнера.

0 голосов
/ 08 февраля 2010

Центрирование, но сохранение размера в IB невозможно. Сосредоточение, но поддержание полей в его суперпредставлении, все же.

Вам придется переопределить сообщение layoutSubviews или просто сохранить код вычисления, который вы написали.

...