iOS-Storyboad动态刷新

本文介绍了如何在iOS开发中使用IB_DESIGNABLE和IBInspectable实现Storyboad的动态刷新。通过这两个属性,开发者可以在Xcode的设计界面实时预览自定义视图的效果,简化了界面设计和调试过程。文章详细讲解了这两个属性的使用方法,并解决了在动态刷新过程中遇到的资源加载和图片获取问题。
摘要由CSDN通过智能技术生成

iOS-Storyboad动态刷新

什么叫做Storyboard动态刷新

在项目开发中,如果可以在xib(storyboard)中,动态显示运行效果图,那么实在是太爽了。在Xcode 6之后就为我们提供了这样的一种方式,来实现这样的效果,通过IBInspectable和IB_DESIGNABLE 来实现。

一图胜千言,请看效果图:
这里写图片描述

IB_DESIGNABLE-属性介绍

IB_DESIGNABLE的宏的功能就是让XCode动态渲染出该类图形化界面。需要注意的是,自定义类必须是UIView的子类。

使用方式,把该宏加在自定义类的前面:

#import <UIKit/UIKit.h>

IB_DESIGNABLE
@interface DynamicView1 : UIView

@end

现在可以将DynamicView1类实例,显示是xib中了。

具体方法为:

    1.  随便创建一个xib(storyboard)文件
    2.  将一个UIView控件拖动到xib(storyboard)中
    3.  将这个UIView控件设置为刚刚创建的类(DynamicView1)

IBInspectable-属性介绍

让支持KVC的属性能够在Attribute Inspector中配置。

但是现在不一样了。在xcode6之后,为我们提供了宏定义IBInspectable,在需要的属性之前定义这个宏定义,我们就可以在图形化界面中设置这个数值了。

使用方式,把该宏加在自定义类的前面:
在声明文件中添加:

@property (strong, nonatomic) IBInspectable NSString *string;

在IB中设置属性,会调用响应的set方法。因此,如果你想在设置这个数值的时候,进行一些其他操作。那么你可以重写赋值方法:

- (void)setString:(NSString){
    _string = string;
    //其他操作
}

可以显示的数据如下:

Int
CGFloat
Double
String
Bool
CGPoint
CGSize
CGRect
UIColor
UIImage

其实 @IBInspectable 并没有做什么太神奇的事情,我们如果查看 IB 中这个 view 的 Identity Inspector 的话会看到刚才所设定的颜色值被作为了 Runtime Attribute 被使用了。其实手动直接在 Runtime Attributes 中设定颜色也有同样的效果,因此 @IBInspectable 唯一做的事情就是在 IB 面板上为我们提供了一个很方便地修改属性的入口,并没有其他太多神奇之处。

通过IB_DESIGNABLE配合IBInspectable可以实现动态刷新

IB_DESIGNABLE作用为:动态渲染图像到xib(storyboard)中。
IBInspectable作用:使属性可以在IB界面中可视化编辑设置。
结合两者,我们就能实现动态刷新界面。

使用方法:
在声明文件中:

IB_DESIGNABLE
@interface DynamicView1 : UIView

@property (strong, nonatomic) UIImageView *imageView;
@property (strong, nonatomic) UILabel *label;

@property (strong, nonatomic) IBInspectable NSString *string;
@property 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值