As of Xcode 7, Interface Builder doesn't understandUIEdgeInsetsZero
as an @IBInspectable
(bummer!).
You can work around this, however, by using CGFloat
properties to set edge insets indirectly:
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
}
This will correctly show the bottomInset
, leftInset
, etc within Interface builder.