IBDesignable的objc使用方法

Apple在上次WWDC的时候发布了新的Xcode,除了添加新的swift语言支持,里面还带有了IBDesignable的新特性。

通过IBDesignable特性,我们可以在不编译的情况下查看UI的效果,改变UI的一些参数进行预览,这一特性特别适合在跟设计师讨论方案的时候使用。

IBDesignable在Objective-C下的使用方法大致如下:

  1. 头文件的声明
    在头文件引用宏定义IB_DESIGNABLE,在想要跟踪的变量类型前引用宏定义IBInspectable
#import <UIKit/UIKit.h>
IB_DESIGNABLE  
@interface designableImageView : UIImageView
@property (nonatomic) IBInspectable UIColor* borderColor;
@property (nonatomic) IBInspectable CGFloat borderWidth;
@property (nonatomic) IBInspectable CGFloat cornerRadius;
@property (nonatomic) IBInspectable UIImage* msgImage;
@end
  1. 具体实现
    在变量的setter里面实现UI值得设置,比如圆角半径,border颜色,宽度
#import "designableImageView.h"

@implementation designableImageView

-(void)setBorderColor:(UIColor *)borderColor
{
    self.layer.borderColor = [borderColor CGColor];
    _borderColor = borderColor;
}

-(void)setBorderWidth:(CGFloat)borderWidth
{
    _borderWidth = borderWidth;
    self.layer.borderWidth = borderWidth;
}

-(void)setCornerRadius:(CGFloat)cornerRadius
{
    _cornerRadius = cornerRadius;
    self.layer.cornerRadius = cornerRadius;
}

-(void)setMsgImage:(UIImage *)msgImage
{
    _msgImage = msgImage;
    self.image = msgImage;
}

@end

这时在Interface Builder里面绑定这个类的时候参数栏里就会出现相应的参数

以上