Просто перетащите общий UIView в наконечник в Interface Builder и установите его класс в свой пользовательский подкласс. Вы по-прежнему можете делать все, что могли, со старым простым UIView, включая перетаскивание подпредставлений.
Вы не сможете увидеть, как на самом деле выглядит пользовательское подпредставление в Interface Builder; это будет просто серый прямоугольник. Вы могли бы (я думаю) сделать это в Xcode 3 с плагинами IB, но, по крайней мере, на данный момент Xcode 4 не поддерживает такие плагины.
РЕДАКТИРОВАТЬ:
Чтобы решить последующие действия OP, вам необходимо программно управлять z-упорядочением. Вероятно, проще всего оставить код как есть, но вместо того, чтобы делать что-то вроде:
UIView *mySubview1 = ...;
UIView *mySubview2 = ...;
UIView *mysubview3 = ...;
[self addSubview:mySubview1];
[self addSubview:mySubview2];
[self addsubview:mySubview3];
(который, как вы заметили, вполне может накладывать подвиды поверх подвидов пользователя)
Сделайте что-нибудь вроде:
UIView *container = [[UIView alloc] initWithFrame:[self bounds]];
UIView *mySubview1 = ...;
UIView *mySubview2 = ...;
UIView *mysubview3 = ...;
[container addSubview:mySubview1];
[container addSubview:mySubview2];
[container addsubview:mySubview3];
[self addSubview:container];
[self sendSubviewToBack:container];
[container release];
В качестве альтернативы вы можете использовать [self insertSubview:container atIndex:0], но я думаю, что добавление и перемещение на задний план немного понятнее при беглом просмотре кода.
Конечным результатом является то, что вам не нужно возиться с существующим z-порядком ваших подпредставлений; поместив их в один легко управляемый контейнер, вы можете переместить всю коллекцию в любое место в иерархии подвидов.
person
Conrad Shultz
schedule
09.02.2012