2016-02-25 5 views
2

Я читаю эту статью IBInspectable/IBDesignable и поток, но я обнаружил, что изменения не сразу отображаются на раскадровке. Кто-нибудь знает почему? Мои Xcode Версия: 7,1Sse IBInspectable и IB_DESIGNABLE Ошибки изменения не отображаются в раскадровке?

enter image description here

Мой главный код:

ViewController.h

#import <UIKit/UIKit.h> 
IB_DESIGNABLE 
@interface ViewController : UIViewController 


@end 

UIView + CornerRadius.h

#import <UIKit/UIKit.h> 

@interface UIView (CornerRadius) 
@property(nonatomic ,assign) IBInspectable CGFloat cornerRadius; 
@end 

UIView + CornerRadius.m

#import "UIView+CornerRadius.h" 

@implementation UIView (CornerRadius) 

-(void)setCornerRadius:(CGFloat)cornerRadius { 
    self.layer.cornerRadius = cornerRadius; 
    self.layer.masksToBounds = cornerRadius > 0; 
} 

-(CGFloat)cornerRadius { 
    return self.layer.cornerRadius; 
} 

@end 

ответ

0

Я протестировал ваш код в Xcode, и я обнаружил, что если вы объявите представление на раскадровке как экземпляр UIView + CornerRadius, это действительно не сработает. Но если вы создадите подкласс UIView или вашу категорию UIView + CornerRadius и объявите представление как этот подкласс, он будет работать нормально.

Я приложу скриншот, чтобы продемонстрировать: enter image description here

+0

О, код в категории точно так же, как и ваша. И вам не нужно писать какой-либо код в подклассе CornerView UIView –

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