2016-01-23 2 views
0

Я просмотрел отличное видео на IBDesignable https://developer.apple.com/videos/play/wwdc2014-411/ и создал фреймворк с элементом управления, который будет использоваться моим основным приложением (и, если необходимо, совместно с ним).IBDesignable элементы управления в каркасе

Я создал управление на заказ «композитом» с помощью IB, в соответствии с этим большим учебником, http://supereasyapps.com/blog/2014/12/15/create-an-ibdesignable-uiview-subclass-with-code-from-an-xib-file-in-xcode-6

техник хорошо работает, и теперь я могу разместить свои DESIGNABLE управления на моей раскадровке.

Проблема в том, что я замечаю, что все мои IBOutlets и IBActions в моем «фреймворке» появляются в IB на моей раскадровке. Но я хочу скрыть их! Функциональность для элементов управления скрыта в рамках, и IBOutlets и IBActions были созданы как таковые, чтобы облегчить их работу в рамках этой структуры, с уведомлением внешнего мира, обрабатываемого делегатами или другими способами.

Этот метод является убедительным в том, что я могу использовать его, чтобы создать многоразовую библиотеку «составного» управления, но было бы полезно, чтобы скрыть определенные IBOutlets и IBActions из реализаторов библиотеки, чтобы обеспечить элемент «безопасности»

Можно ли это сделать? Есть ли какие-либо флаги, чтобы скрыть элементы IBOutlet/IBAction в рамках?

ответ

0

Когда вы говорите о безопасности, если вы объявляете @IBActions, @IBOutlets и т. Д. Как внутренние, то они являются частями вашего модуля приложения.

Что касается фреймворков, они состоят из собственного модуля (проверьте настройки сборки, имя модуля) и убедитесь, что включен «определяет модуль».

Это гарантирует, что ваш модуль будет включен «включено», то есть все, что находится в вашей Framework (или приложении или пакете с собственными модулями), имеет свою собственную среду.

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

Контроль доступа объясняется лучше подробно здесь: https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AccessControl.html

+0

Спасибо за полезную информацию. Я должен был сказать, что кодирую рамки в Objective-C. Это, вероятно, повлияет на доступность и видимость. Мне интересно, есть ли способ? – Fittoburst

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