Xcode6: IBD, який можна призначити та IBInspectable за допомогою Objective-C


74

У мене є компонент інтерфейсу Objective-C, який я хотів би зробити перевіряемым у Interface Builder з Xcode 6. Swift має атрибути @IBDesignableта @IBInspectableоголошення. Чи доступні вони також у Objective-C? Як вони використовуються?


Ми не можемо обговорити це тут, запитуйте на форумах розробників яблук.
Маріо

11
@Mario Чому ми не можемо обговорити це тут? Ви знаєте, що NDA цього року розслабився , так?
Метт Гібсон,

2
Питання, висвітлені сторонніми NDA, ніколи не були актуальними у StackOverflow. Див. Meta.stackoverflow.com/a/94488/162235
Яно

Відповіді:


75

Еквіваленти є IB_DESIGNABLE і IBInspectable-см документації для Objective прикладів C .

Крім того, цьогорічне відео WWDC "Що нового у конструкторі інтерфейсів" має свої приклади в Swift, але ведучий також побіжно згадує еквіваленти Objective C.


@JoshuaNozzi Виправлено. Компанія Apple перенесла документацію з попереднього випуску вчора із запуску iOS 8.
Метт Гібсон,

Це не працює, якщо ви створюєте підклас UIButton .. чому?
Даніель Гомес Ріко

83

Приклад коду:

#import <UIKit/UIKit.h>
IB_DESIGNABLE
@interface LOLView : UIView
@property (nonatomic) IBInspectable UIColor *someColor; 
@end

@Satyam Чи не можете ви просто встановити подання контролера перегляду на вигляд, який містить ці макроси у файлі заголовка?
hhanesand

Як можна зробити iBOutlet IBInspectable? Після того, як я його змінив, у мене більше немає кола власності, яке показує мені, що воно пов’язане
Піні Чейні

Не думаєте, що все одно хочете це зробити? IBInspectable встановлює властивість на IBOutlet, як правило. Приклад: Колір тексту (IBInspectable) UILabel (IBOutlet).
Адам Уейт,

Чи буде це працювати у .m-файлі чи він призначений виключно для використання у .h-файлі вашого користувацького подання?
Таш Пемхіва

.h я припускаю. Чому ви хочете це зробити в .m?
Адам Уейт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.