Создайте UIView в раскадровке Interface Builder

Я искал то, что я хочу сделать, но все ответы, кажется, предшествуют раскадровкам в iOS, поэтому я надеюсь, что есть новый и более простой способ сделать это.

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

Я разрабатываю для iOS 6, и есть новый Container View, но я не могу понять, как он работает, может быть, кто-нибудь может мне это объяснить. Мне удалось отобразить представление, но я не могу общаться между UIView в контейнере и родительским UIViewController. Я также видел способ сделать это с переходами, но они сказали, что их не следует использовать таким образом.


person gabriellanata    schedule 20.08.2012    source источник
comment
Почему бы вам не создать его, а затем несколько раз скопировать и вставить uiview? Есть несколько способов сделать это, но это зависит от поведения, которое вы хотите   -  person Pochi    schedule 20.08.2012
comment
Я хочу, чтобы UIView обрабатывал все подпредставления, которые он имеет внутри, как обычный пользовательский UIView, созданный программно в своем собственном классе (должен реагировать на свойства и т. д.). Кроме того, мне, вероятно, придется много раз менять в нем вещи во время разработки, поэтому я бы предпочел не копировать их снова, а просто распространять изменения.   -  person gabriellanata    schedule 20.08.2012
comment
У меня нет опыта работы с iOS 6, но по моему опыту невозможно создавать такие пользовательские объекты в iOS, однако вы можете легко использовать XIB, пользовательский класс и фиктивный объект для достижения чего-то подобного. Вы бы проектировали в xib с его пользовательским классом и использовали манекен на раскадровке, чтобы взять его местоположение и рамку.   -  person Pochi    schedule 20.08.2012


Ответы (1)


Никаких трюков, никаких трюков

Решение @Chiquis - это то, что нужно.

Рассматривайте Storyboard как набор XIB, аккуратно организованный под одной крышей:

  1. Скопируйте и вставьте свой UIView в столько UIViewController, сколько считаете нужным.
  2. Подключите каждый UIView к его родительскому элементу UIViewController с помощью IBOutlets.
person SwiftArchitect    schedule 03.04.2015