首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用@IBDesignable中的@IBDesignable集合,在通过约束更新之后

调用@IBDesignable中的@IBDesignable集合,在通过约束更新之后
EN

Stack Overflow用户
提问于 2017-05-05 11:32:27
回答 1查看 415关注 0票数 0

我想为UIView制作一个@I检查表,它使UIView成为一个圆圈:

代码语言:javascript
复制
@IBInspectable var circleBorder: Bool {
    set {
       layer.cornerRadius = layer.frame.size.width / 2
    }
    get {
        return layer.cornerRadius > 0 ? true : false
    }
}

问题是,在约束修改其值和设置错误的cornerRadius之前,调用了我的@IB了无检查表。在这里有可能得到约束后的层大小吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-05 11:47:53

我不认为有,但有一个更好的方法-暴露cornerRadius

这样,开发人员就可以按照自己的顺序行事。在Bool中公开内容意味着在IB中,开发人员需要(1)创建视图,(2)添加约束,(3)更新框架,然后(4)设置Bool。(此外,在Xcode 8中,我猜如果您在IB中更改设备-即使在序列正确之后-事情可能无法正确更新。

除非您有一个特定的原因--我想不出--让它成为Bool,否则这不仅无害,而且更可定制。

守则:

代码语言:javascript
复制
@IBInspectable public var cornerRadius:CGFloat {
    get {
        return layer.cornerRadius
    }
    set {
        layer.cornerRadius = newValue
        layer.masksToBounds = newValue > 0
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43803898

复制
相关文章

相似问题

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