首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IBInspectable UIEdgeInsets未在IBOutlet中显示

IBInspectable UIEdgeInsets未在IBOutlet中显示
EN

Stack Overflow用户
提问于 2016-06-22 09:35:39
回答 1查看 2.9K关注 0票数 12

我正在为UIButton创建一个自定义类来增加点击区域。我需要用户可以输入填充在故事板本身。所以我做了一个IBInspectable属性。

代码语言:javascript
复制
@IBDesignable class UIIconButton: UIButton {
    @IBInspectable var touchPadding:UIEdgeInsets = UIEdgeInsetsZero
}

但它没有显示在故事板上。但是,如果用CGRect替换,那么它在故事板中是可见的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-24 16:04:22

从Xcode 7开始,Interface并不将UIEdgeInsetsZero理解为@IBInspectable (令人沮丧!)。

但是,您可以通过使用CGFloat属性间接设置边缘嵌入来解决这一问题:

代码语言:javascript
复制
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    
}

这将正确地显示接口生成器中的bottomInsetleftInset等。

票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37964064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档