Пользовательский интерфейс UIView с IB/Xcode 4.5.1 и iOS Simulator 6.0

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

Я хочу иметь пользовательский UIView, у которого есть наконечник, но я не получаю этот hooked up должным образом. Я потратил несколько часов на отладку и отключение, чтобы я пошел (и, возможно, сижу в ванной). Извините заранее, если вы чувствуете, что это простая операция; спасибо за любую помощь.

Для этого в настоящее время I:

  • Создайте пользовательские файлы просмотра: Файл → Создать → Файл → Objective-C Класс и выберите тип UIView и назовите его MyView; Созданы MyView.h и MyView.m
  • Создать пользовательский вид nib: Файл → Создать → Файл → Пользовательский интерфейс → Просмотреть и назовите его "cool"; Создано cool.xib.
  • В IB для cool.xib зайдите в Identity Inspector и установите пользовательский класс из UIView → MyView; Вопрос №1 - на данный момент MyView знает, как загрузить cool.xib при его создании или еще нужно сделать?
  • Кроме того, в IB я выделил владельца файла и установил свой пользовательский класс в MyView. (? - не уверен в этом)
  • Я хочу создать текстовую метку, чтобы вытащить UILabel на cool.xib и создать общедоступное свойство (myLabel) в MyView.h. ВопроС# 2 Нужно ли мне настроить для этого класса пользовательский класс для MyView? Я бы не подумал, что это всего лишь стандартный UILabel.
  • У меня есть приложение с одним представлением, и я хотел бы иметь экземпляр MyView/cool, поэтому в IB я перетаскиваю View из инспектора объектов в ViewController.xib. В IB Identity Inspector я установил класс в MyView. Я импортирую файл MyView.h в ViewController.h и настроил для него свойство в интерфейсе.
  • В ViewController.m viewDidLoad я установил цвет фона оранжевым и установил myLabel (который заполняется Xcode, поэтому кажется, что это любопытная работа).

Я запустил приложение, а backgroundColor настроен на оранжевый, но без метки, и я не согласен с тем, почему нет? Выбраны ли какие-либо из вышеперечисленных шагов?

спасибо заранее

Ответ 1

В IB для cool.xib зайдите в Identity Inspector и установите Custom Класс из UIView → MyView; Вопрос №1 - на данный момент MyView знать, загружать cool.xib, когда он создается, или нужно больше сделано?

Он знает, что ваш XIB управляется этим классом. Но нужно сделать еще больше, чтобы вы могли это использовать.

Пропустить четвертый вопрос. Это будет работать для UIViewController, где вы определяете, кто будет отвечать за него, с File Owner.

Я хочу создать текстовую метку, чтобы перетащить UILabel на cool.xib и создать публичную собственность (myLabel) в MyView.h. Вопрос №2 нужно установить для этого класса пользовательский класс в MyView? Я бы не подумал это всего лишь стандартный UILabel.

Если вы хотите иметь доступ к этому UILabel из вашего MyView, вы должны создать IBOutlet в своем MyView и ссылку из корневого UIView (это подкласс вашего MyView) на UILabel. В этом случае вы не прикасаетесь к файловому владельцу.

Наконец, проверьте это, чтобы вы правильно загрузили свое собственное представление = > Загрузка пользовательского UIView из nib, все подзаголовки, содержащиеся в nib, равны nil?