iosiOS DeveloperiOS_UIkit

神奇的IB_DESIGNABLE和IBInspectable(x

2015-08-16  本文已影响10664人  YotrolZ

* IB_DESIGNABLE* 的具体使用方法:

#import <UIKit/UIKit.h>

// 在定义类的前面加上IB_DESIGNABLE宏
IB_DESIGNABLE

@interface YCCustomView : UIView

@end
说明

* IBInspectable* 的具体使用方法:

默认是没有这些选项的,不信你瞅瞅你的~.~

废话不多说,直接上代码:

#import <UIKit/UIKit.h>

IB_DESIGNABLE  // 动态刷新

@interface YCCustomView : UIView

// 注意: 加上IBInspectable就可以可视化显示相关的属性哦
/** 可视化设置边框宽度 */
@property (nonatomic, assign)IBInspectable CGFloat borderWidth;
/** 可视化设置边框颜色 */
@property (nonatomic, strong)IBInspectable UIColor *borderColor;

/** 可视化设置圆角 */
@property (nonatomic, assign)IBInspectable CGFloat cornerRadius;

@end

重写set方法,根据可视化设置的值设置相关的属性

#import "YCCustomView.h"

@implementation YCCustomView

/**
 *  设置边框宽度
 *
 *  @param borderWidth 可视化视图传入的值
 */
- (void)setBorderWidth:(CGFloat)borderWidth {
    
    if (borderWidth < 0) return;

    self.layer.borderWidth = borderWidth;
}

/**
 *  设置边框颜色
 *
 *  @param borderColor 可视化视图传入的值
 */
- (void)setBorderColor:(UIColor *)borderColor {

    self.layer.borderColor = borderColor.CGColor;
}

/**
 *  设置圆角
 *
 *  @param cornerRadius 可视化视图传入的值
 */
- (void)setCornerRadius:(CGFloat)cornerRadius {

    self.layer.cornerRadius = cornerRadius;
    self.layer.masksToBounds = cornerRadius > 0;
}

@end
上一篇下一篇

猜你喜欢

热点阅读