IB_DESIGNABLE&IBInspectable

以`设置控件圆角和描边为例`谈谈IB_DESIGNABLE、IBInspectable

Posted by kunnan on December 1, 2016

前言

  • 常规通过IB设置控件(设置圆角、描边、文本控件添加本地化字符串)的缺点
    有一些属性没有暴露在 IB 的设置面板中
    

IB设置控件的属性的常用方法

  • 从Storyboard关联出属性,然后再对属性进行代码处理。
  • 选中控件,然后在Runtime Attributes框中输入对应的KeyTypeValue,这样程序在运行时就会通过KVC为你的控件属性进行赋值。

本文的主要内容

objc 和swift 两个语言如何利用IBInspectable,来提高开发效率

I 、IB_DESIGNABLE、IBInspectable 实现控件属性的关联

使用 @IBInspectable 在 IB 面板中添加自定义属性,利用 @IBInspectable 减少代码设置.

1.0 实现方法

  • 创建UIView的分类,使用IBInspectable+ IB_DESIGNABLE关键字

1.1 使用方法:xib上直接设置属性:cornerRadius、borderWidth、borderColor

  • 在控件的右边栏 Attributes inspector 选项卡将会显示圆角和描边的属性设置

1.2 实时动态显示设置效果的方法

  • 写一个空白的子类设置在Customer Class 中

1.3 code

II、在Swift中使用IBInspectable

使用在对应的 view 中添加 @IBInspectableextension 方法来解决

2.0 扩展语法

  • 使用关键字 extension 来声明扩展:
    extension SomeType {
      // 为 SomeType 添加的新功能写到这里
    }
    

2.1 设置圆角、描边、本地化字符串的key

2.2 利用 @IBDesignable 在 IB 中实时显示 @IBInspectable 的样式

2.3 IBInspectable can be used with the below types,

  • Int
  • CGFloat
  • Double
  • String
  • Bool
  • CGPoint
  • CGSize
  • CGRect
  • UIColor
  • UIImage

2.4 code

see also

转载请注明: > IB_DESIGNABLE&IBInspectable