Пользовательский UIView в IB - PullRequest
1 голос
/ 25 июня 2011

Я создал собственный подкласс UIView для элемента интерфейса, который я хочу создать на экране iPad.(создается список кнопок)

Чтобы использовать это представление, я добавил представление в IB, правильно установил размер и обновил класс до моего подкласса.

Когда я запускаю свой проект, ни одна из кнопок не создается, потому что фрейм - (id) initWithFrame: (CGRect) никогда не вызывается.

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

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 25 июня 2011

Это довольно хорошо задокументировано в справке UIView в методах переопределения.

  • Переопределить initWithCoder: для обработки экземпляра вашего представления из NIB
  • Переопределить initWithFrame: для поддержки создания вашего представления из кода

Более подробная информация доступна в этом SO сообщении . Это выглядит практически идентично вашему вопросу на самом деле ...

2 голосов
/ 25 июня 2011

Переопределите initWithCoder: и вызовите некоторый общий код, который также вызывает initWithFrame:. Первый будет вызван для инициализации из пера, второй - для инициализации из кода.

awakeFromNib также является опцией, которая произойдет позже в жизненном цикле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...