【问题标题】:Getting round Button With User Defined Runtime Attributes使用用户定义的运行时属性获取圆形按钮
【发布时间】:2016-04-21 15:53:00
【问题描述】:

首先我正在使用 swift 。其次,我做了 CAlayer 扩展

extension CALayer
{
    func borderUIColor() -> UIColor? {
        return borderColor != nil ? UIColor(CGColor: borderColor!) : nil
    }

    func setBorderUIColor(color: UIColor) {
        borderColor = color.CGColor
    }
}

这是具有此属性的结果

结果:

我得到了那些层属性可以帮助我的角尖峰。我是否会转移界限或处理内容或其他事情。

【问题讨论】:

  • 您可以尝试确保选中剪辑子视图复选框吗?

标签: xcode swift


【解决方案1】:

用计算属性替换您的扩展方法,如下所示:

extension CALayer
{
    var borderUIColor(): UIColor? {
        get {
            return borderColor
        }

        set {
            borderColor = borderUIColor
        }
    }
}

如您所见,您根本不需要扩展——只需使用层的borderColor。将 layer.borderUIColor 运行时属性替换为 layer.borderColor,并为获得最佳效果,将 layer.masksToBounds 添加为 true

【讨论】:

  • 我不能直接使用 layer.borderColor 它是我读过的 IB 不支持的类型,并且使用这个扩展的边框颜色只是我不想要那个边缘尖峰可见
  • layer.borderColorCGColor,而不是 UIColor,这可能是您所说的“不支持的类型”。但是当你在用户定义的运行时属性中使用它时,你可以使用颜色选择器就好了。
  • 谢谢。 layer.masksToBounds 有效,我会了解它的含义。layer.borderColor 也有效,我删除了扩展名。
  • masksToBounds 告诉视图不要渲染任何位于边界之外的内容。
猜你喜欢
  • 2020-05-15
  • 1970-01-01
  • 2012-04-10
  • 1970-01-01
  • 1970-01-01
  • 2014-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多