我正在为UIButton创建一个自定义类来增加点击区域。我需要用户可以输入填充在故事板本身。所以我做了一个IBInspectable属性。
@IBDesignable class UIIconButton: UIButton {
@IBInspectable var touchPadding:UIEdgeInsets = UIEdgeInsetsZero
}但它没有显示在故事板上。但是,如果用CGRect替换,那么它在故事板中是可见的。
发布于 2016-08-24 16:04:22
从Xcode 7开始,Interface并不将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
}这将正确地显示接口生成器中的bottomInset、leftInset等。
https://stackoverflow.com/questions/37964064
复制相似问题