(0058)iOS开发之iOS8新特性IBDesignable的使用
来源:互联网 发布:c语言词汇 编辑:程序博客网 时间:2024/06/13 22:41
在OC和Swift中使用IBDesignable/IBInspectable
iOS8新特性IBDesignable/IBInspectable,可以直接在XIB或者Storyboard中直接,设置UI类的属性。
例如:UIView.layer.borderWidth、borderColor、cornerRadius这些属性在XIB上是不能直接设置的,但是IBDesignable/IBInspectable,利用运行时机制,就可以把这些属性映射到XIB上了,同时我们UI类的自定义属性也可以映射上去。关于过多的解释我就不多说了可以看看Nate Cook撰写的。
以UIView的子类为例:
Swift IBDesignable/IBInspectable
首先我们得建一个ViewSwift类,View继承自UIView,选择Swift语言。
@IBDesignable
class View: UIView {
@IBInspectable var cornerRadius: CGFloat = 0.0 {
didSet {
layer.cornerRadius = cornerRadius
layer.masksToBounds = true
}
}
@IBInspectable var borderColor: UIColor = UIColor() {
didSet {
layer.borderColor = borderColor.CGColor
}
}
@IBInspectable var borderWidth: CGFloat = 0.0 {
didSet {
layer.borderWidth = borderWidth
}
}
}
然后在XIB或Storyboard里面,拖一个UIView上去,把class改成自己定义的View
然后点击旁边的属性编辑,就可以看到我们动态加载上去的属性,直接修改就可以了,XIB上的View也会跟随变化。
我们就可以看到一个UIView的子类变成了这样
Objective-C IBDesignable/IBInspectable
建一个ViewOC类,ViewOC继承自UIView,选择Objective-C语言,在.h里面声明属性
@property (nonatomic, assign)IBInspectable CGFloat cornerRadius;
@property (nonatomic, assign)IBInspectable CGFloat bwidth;
@property (nonatomic, assign)IBInspectable UIColor *bcolor;
注意:IBInspectable修饰的位置。
然后再.m文件里面,@implementation前面用IB_DESIGNABLE修饰。
IB_DESIGNABLE
@implementation ViewOC
然后再set方法里面去赋值就OK了,如下:
- (void)setCornerRadius:(CGFloat)cornerRadius{
_cornerRadius = cornerRadius;
self.layer.cornerRadius = _cornerRadius;
self.layer.masksToBounds = YES;
}
- (void)setBcolor:(UIColor *)bcolor{
_bcolor = bcolor;
self.layer.borderColor = _bcolor.CGColor;
}
- (void)setBwidth:(CGFloat)bwidth {
_bwidth = bwidth;
self.layer.borderWidth = _bwidth;
}
效果跟上面Swift是一样的,如果有疑问和建议,欢迎指导和提问。
- (0058)iOS开发之iOS8新特性IBDesignable的使用
- iOS8新特性IBDesignable
- iOS ios8新特性之扩展
- iOS ios8新特性之扩展详解
- iOS ios8新特性之扩展
- IOS8新特性之——UIAlertController的使用
- WWDC2014之iOS8的新特性预览
- iOS8的新特性
- ios8新特性widget开发
- IOS8开发中的新特性
- ios8新特性widget开发
- iOS8 新特性widget开发
- ios8新特性widget开发
- iOS经典讲解之iOS8新特性UIAlertController
- ios8新特性之指纹识别
- [IOS 开发] @IBDesignable @IBInspectable
- iOS IBInspectable / IBDesignable的使用 可视化编程
- 【iOS】iOS8 与以前版本比较,添加的新特性
- 一键获取电脑所有连接过的WIFI密码
- python+appium的物理按键代码
- java8-03-全新的日期时间API
- C++ 引用
- mongodb如何访问远程数据库
- (0058)iOS开发之iOS8新特性IBDesignable的使用
- 求解集合A和集合B的差集
- 2017.07.25回顾 骚气EDA研究学习
- 面向对象 多态作业
- 【cuda】样例目录
- 写python程序需要注意的问题
- Java并发——核心理论
- linux下搭建hadoop和spark环境之安装jdk
- ios-Category补充