Sau*_*pal 10 storyboard xib ios ibinspectable xcode7
我正在创建一个自定义类UIButton来增加挖掘区域.我需要用户可以在故事板中输入填充.所以我做了一个IBInspectable房产.
@IBDesignable class UIIconButton: UIButton {
@IBInspectable var touchPadding:UIEdgeInsets = UIEdgeInsetsZero
}
Run Code Online (Sandbox Code Playgroud)
但它没有在故事板中显示.但是,如果用CGRect它替换它,那么它在故事板中是可见的.
JRG*_*per 25
从Xcode 7开始,Interface Builder并不理解UIEdgeInsetsZero为@IBInspectable(无赖!).
但是,您可以通过使用CGFloat属性间接设置边缘插入来解决此问题:
public class UIIconButton: UIButton {
@IBInspectable public var bottomInset: CGFloat {
get { return touchPadding.bottom }
set { touchPadding.bottom = newValue }
}
@IBInspectable public var leftInset: CGFloat {
get { return touchPadding.left }
set { touchPadding.left = newValue }
}
@IBInspectable public var rightInset: CGFloat {
get { return touchPadding.right }
set { touchPadding.right = newValue }
}
@IBInspectable public var topInset: CGFloat {
get { return touchPadding.top }
set { touchPadding.top = newValue }
}
public var touchPadding = UIEdgeInsetsZero
}
Run Code Online (Sandbox Code Playgroud)
这会正确显示bottomInset,leftInset等界面生成器内.
| 归档时间: |
|
| 查看次数: |
2066 次 |
| 最近记录: |