2015-05-21 5 views
1

Я хотел бы иметь возможность взаимодействовать с UIControl, который я сделал, и, следовательно, хочу его в моем ViewController.Как показать подкласс UIControl в контроллере просмотра

То, что я пытался

  • I подклассы UIControl (1).
  • Затем я добавил UIView в свой контроллер просмотра и назначил ему новый класс (2).

Но в Interface Builder я не могу установить свои выходы на кнопки, содержащиеся в новом классе (1) ?!

1: 1



2: 2



UIControl's documentation подтверждает, что это подкласс UIView, и поэтому я должен быть в состоянии соединить выходы, не так ли?

Что мне здесь не хватает? :/

+0

Как вы пытались подключить розетки? Выберите WeekdayControl в IB и перейдите к инспектору подключений, оттуда вы можете подключить выходы к вашим кнопкам в IB. – matthias

+0

Да, именно так я пытался их подключить. Я попытался перетащить, но ничего не похоже на связь. :/ – Anfaje

ответ

1

Off-Конечно, вы не можете добавить IBOutlet, потому что кнопки, что вы добавили к WeekdayControl в UIViewController, вы не можете добавить выхода к WeekdayControl, кнопке только подвиды из WeekdayControl, UIViewController босса здесь, и вы можете добавить розетка только до UIViewController. (Извините за мой английский)

Лучше создавайте свои кнопки программно в WeekdayControl.

+0

Спасибо! Это именно интерфейс Builder 101, я не мог опустить голову. – Anfaje

1

Должен прочитать первый: -

Вы не можете использовать класс UIControl непосредственно экземпляр управления. Вместо этого он определяет общий интерфейс и структуру поведения для всех своих подклассов.

Основная роль UIControl заключается в определении интерфейса и базы реализации для подготовки сообщения действий и первоначально диспетчерской их к цели, когда определенные события происходят

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

Я думаю, что Вы не цель подклассов в UIControl, это не дает права на создание торговых точек, как это подкласс UIView, просто читать эти строки, что оно изложено в документации: -

подклассы Примечание

Вы можете продлить подкласс UIControl для одной из двух причин:

для наблюдения или изменить DISP ATCH сообщений действий для мишеней для конкретных событий

Чтобы сделать это, переопределить sendAction: к: forEvent :, оценить переданную в селекторе, целевой объекте, или UIControlEvents битовой маски, и продолжайте как требуется.

Для обеспечения пользовательского отслеживания поведения (например, для изменения внешнего вида выделения)

Чтобы сделать это, переопределить один или все из следующих способов: beginTrackingWithTouch: withEvent :, continueTrackingWithTouch: withEvent :, endTrackingWithTouch : withEvent :.

+0

Но причина, по которой я сделал контроль, заключалась в том, чтобы отделить переменные, хранящиеся там, и получить к ним доступ через элемент управления. Без контроля мой контроллер просмотра действительно раздувается. :/ Я понимаю, что это может быть не самая лучшая практика, но я до сих пор не понимаю, почему это невозможно! – Anfaje

+0

Вы ошибаетесь, вы сказали, что «это может быть не самая лучшая практика», это вовсе не способ создания пользовательского контроля;) – Vizllx

 Смежные вопросы

  • Нет связанных вопросов^_^