Пользовательский UIControl подкласс установить положение в IB для iOS - PullRequest
7 голосов
/ 13 июля 2011

Я делаю подкласс UIControl и поэтому программно выкладываю в нем все. Теперь, когда я сделал это, мне нужно разместить его несколько раз на разных экранах. Я знаю, что вы не можете создать плагин IB для iOS, но нет ли способа взять UIView в IB и изменить его размер / разместить там, где должен находиться мой элемент управления, а затем установить его свойство Custom Class в качестве подкласса моего UIControl ? Я знаю, что я не увижу, чтобы это показывало, как это действительно в IB, но по крайней мере это позволяет мне устанавливать общий размер и расположение относительно других вещей на экране. Я также создал IBOutlets в моем viewController и правильно связал с ним представление в IB. Однако при запуске я не вижу никаких настроек, а когда я устанавливаю точки останова в initWithFrame: или loadView, я никогда не вижу, что мой код вызывается. Как мне это сделать?

1 Ответ

10 голосов
/ 13 июля 2011

Вы можете перетащить UIView в файл пера, а затем использовать инспектор идентификации (command-opt-3), чтобы изменить класс на любой подкласс UIView.

Вам нужно будет установить подклассы в коде инициализации, который вызывается при загрузке с пера, т.е. , а не в initWithFrame:. Если вы кодируете для полноты, оба метода (программный и на основе пера) должны вызывать одну и ту же инициализацию.

Если хотите, просто создайте и addSubview: в коде инициализации, а затем внедрите layoutSubviews для разметки ваших пользовательских подпредставлений. Это будет вызываться всякий раз, когда размер представления изменяется так же, как и первоначально.

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