У меня есть подкласс «s» UIView. Я хочу поместить некоторые кнопки и метки на s. Как связать мой подкласс UIView с файлом nib?Как связать файл nib (.xib) с UIView?
ответ
- В интерфейсе Builder создайте новый xib с шаблоном просмотра.
- Нажмите на представлении в списке объектов в XIb (вы также должны видеть «файл Владелец и„Первый ответчика“).
- Нажмите Cmd-4, чтобы открыть панель Удостоверения из инспектор.
- Введите имя вашего класса, в поле «имя класса» и нажмите возвращения.
Вы должны быть в состоянии д тряпичные кнопки. Чтобы получить код от кода, используйте -[NSBundle loadNibNamed:owner:options:]
. Ваше представление должно быть первым объектом в возвращаемом массиве.
В моем случае я не хотел, чтобы мой контроллер просмотра имел какие-либо знания IBOutlets из .xib моего представления. Я хотел, чтобы мой подкласс представления принадлежал IBOutlets. К сожалению, UIView не имеет метода initWithNibName:
, поэтому я просто создал свою собственную категорию.
Вот что я сделал:
- В IB, нажмите на главном UIView, и в идентичности инспекторе, установите класс в подкласс
- В IB, выберите в меню Файл владелицы, а в Identity Inspector, установите класс в свой подкласс
- Используйте метод вашей новой категории
initWithNibName:
, чтобы создать экземпляр вашего представления.
А вот категория я создал:
- (instancetype)initWithNibName:(NSString *)nibName
{
NSArray *arrayOfViews = [[NSBundle mainBundle] loadNibNamed:nibName owner:self options:nil];
if (arrayOfViews.count < 1) {
return nil;
}
self = arrayOfViews[0];
return self;
}
Вдохновленный this post.
Обратите внимание, что до сих пор кадр будет настраиваться автоматически, поэтому, в отличие от кода в сообщении, мне еще не нужно явно устанавливать кадр. Кроме того, в отличие от кода сообщения, мне нужно было установить owner:self
, чтобы IBOutlets были правильно подключены.
- 1. Многоразовый UIView как файл nib
- 2. Связать подкласс UIView с файлом xib
- 3. Подвид для пользовательского UIView с Nib (.xib) не загружается?
- 4. Как создать экземпляр UIView/UITableView из xib (nib) в ViewController
- 5. load/reload xib uiview
- 6. UITableView с файлом xib (nib) Пользовательский интерфейс
- 7. пользовательский UIVIew с nib subviews nil
- 8. Как загрузить NIB из NIB в iOS
- 9. Как загрузить uiview из nib
- 10. Nib/XIb объект Жизненный цикл
- 11. Как связать xib с раскадрой
- 12. и загрузка файлов NIB/XIB?
- 13. Как загрузить UIView из NIB?
- 14. Как «импортировать» UIView XIB в UIViewController XIB?
- 15. Ссылка NIB/Xib - Цель C - xCode
- 16. Загрузка UIView из NIB
- 17. Как загрузить файл nib/xib в веб-представлении в Cocoa?
- 18. Nib-файл загружен UIView в UITableViewCell не растягивается
- 19. Интерфейс построитель: как загрузить файл nib
- 20. Что означает «nib» и «xib»?
- 21. UISplitViewController программно без nib/xib
- 22. Как создать UIView с Xib в MonoTouch
- 23. Добавить xib-файл в объявление UIView
- 24. Как добавить файл UIView Nib в MainView как подпункт
- 25. Пользовательский UIView от nib внутри другого UIViewController's nib - IBOutlets noil
- 26. Что случилось с .NIB -> .XIB?
- 27. Использование файла Nib для UIView - Проблема с макетом
- 28. UIView от xib размыт
- 29. iOS: UIView, непосредственно реализующий Nib
- 30. Загрузка XIB-файла в UIView Swift
Я пытаюсь сделать то же самое - Знаете ли вы, какое имя класса я должен использовать для (a) родительского UIControllerView и (б) пользовательский UIView сам здесь? Я отметил в своем коде, что у меня есть собственное имя класса UIView в обоих, но это дает мне рекурсивный вызов для моего настраиваемого метода init UIView. То есть у меня есть (a) в родительском UIControllerView, который использует мое настраиваемое представление, в IB для его XIB я использую UIView, который я установил для имени класса «clockview», но затем (b) в моем фактическом часовом пользовательском UIView (не UIControllerView) XIB-файл Я сделал то же самое и установил имя класса как «clockview». – Greg 2011-07-13 20:51:16