Вопрос

Я создал подкласс UIVIEW и соответствующий файл XIB, где я выложил несколько UILABELS и UIIMAGEVIEWS. Я хочу потом поставить несколько копий этого пользовательского UIView в UiviewController.

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

Это было полезно?

Решение

Самый простой способ - создать Nib с владельцем файла, установленным на NSObject, содержащий один вид, содержащий ваш элемент макета.

Затем

NSArray *arr = [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:nil options:nil];
UIView *fv = [[arr objectAtIndex:0] retain];

// now you have the view, do something with it:
fv.center = CGPointMake(100,100);
[self.view addSubview:fv];

Нет необходимости делать что-либо с владельцем файла; Это даже настроен на ноль здесь.

Другие советы

Это похоже на использование файла Nib для создания ячеек представления таблицы. Здесь это страница, которая обсуждает, как это сделать.

Вам нужно поставить розетку в вашем UIViewController подкласс для пользовательского представления и установить UIViewController Подкласс как «владелец файла» в вашем пользовательском файле представления Nib (.xib). Затем подключите розетку, который вы создали на объекте View верхнего уровня (снова в файле пользовательского представления Nib).

Затем каждый раз, когда вы хотите создать свой пользовательский вид в код контроллера просмотра, вызов:

[[NSBundle mainBundle] loadNibNamed:<custom view nib name> owner:self options:nil];

Добавленное вами розетку будет установлено значение для нового экземпляра вашего пользовательского представления.

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

Другим подходом создаст этикетки «Положить этикетки» и «Изображения» UIView подкласс, а затем вы можете добавить его в интерфейс строитель, как будто вы бы UIView подкласс.

Редактировать: К сожалению, в XCode 4.0, эта возможность была удалена.

После того, как у вас есть ваш подпоюз настроен в интерфейсе Builder, вы можете создать новую группу (используйте кнопку COG в нижней части окна библиотеки) и перетащите свой объект подкласса (содержащий ваши изображения и этикетки) из представления списка (то есть не макет. Просмотр) Вернуться к окну библиотеки.

Затем вы можете графически добавлять несколько экземпляров подкласса вашего представления на любой вид интерфейса построителя или окно, подобное встроенным объектам в библиотеке.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top