swift3 – 使用用户定义的运行时属性的UIView阴影

swift3 – 使用用户定义的运行时属性的UIView阴影,第1张

概述当我使用“用户定义的运行时属性”时,我很难显示阴影. 如果我使用代码,它似乎完全正常,如下所示. func formatView(view: UIView, cornerRadius: Bool) { if (cornerRadius) {view.layer.cornerRadius = 12 } view.layer.shadowColor = UIColor.black.c 当我使用“用户定义的运行时属性”时,我很难显示阴影.

如果我使用代码,它似乎完全正常,如下所示.

func formatVIEw(vIEw: UIVIEw,cornerRadius: Bool) {    if (cornerRadius) {vIEw.layer.cornerRadius = 12 }    vIEw.layer.shadowcolor = UIcolor.black.cgcolor    vIEw.layer.shadowOffset = CGSize.zero    vIEw.layer.shadowRadius = 3    vIEw.layer.shadowOpacity = 0.3}

但是当我使用用户定义的运行时属性尝试它时,它不再显示.这些是我目前正在使用的.

唯一奇怪的是,如果我删除了layer.shadowcolor属性,那么它似乎再次起作用.但我无法控制颜色.它似乎默认为黑色,但如果我决定选择灰色,我将无法改变它.

这是因为color属性是UIcolor而shadowcolor需要CGcolor吗?

确实如您所述,因为“用户定义的运行时属性”面板中的“颜色”类型创建了一个UIcolor,但是layer.bordercolor包含一个cgcolor类型.

您可以通过创建允许通过Interface Builder设置代理颜色的类别来解决此问题:

extension CALayer {    var borderUIcolor: UIcolor {        set {            self.bordercolor = newValue.cgcolor        }        get {            return UIcolor(cgcolor: self.bordercolor!)        }    }}

但更好的方法是使用IBDesignable而不是用户定义的运行时属性,它更清楚.

您可以通过在项目中添加一个名为UIVIEwExtentions.swift的新swift文件(或者只是将其粘贴到任何文件中)来完成此 *** 作:

import UIKit@IBDesignable extension UIVIEw {    @IBInspectable var bordercolor:UIcolor? {        set {            layer.bordercolor = newValue!.cgcolor        }        get {            if let color = layer.bordercolor {                return UIcolor(cgcolor:color)            }            else {                return nil            }        }    }    @IBInspectable var borderWIDth:CGfloat {        set {            layer.borderWIDth = newValue        }        get {            return layer.borderWIDth        }    }    @IBInspectable var cornerRadius:CGfloat {        set {            layer.cornerRadius = newValue            clipsToBounds = newValue > 0        }        get {            return layer.cornerRadius        }    }}

然后,这将在Interface Builder中为UtilitIEs Panel中的每个按钮,imageVIEw,标签等提供.属性检查员:

现在,如果您在Attributes Inspector中设置值并回顾用户定义的运行时属性,您将看到它们会自动归档给您!

编辑:
有关更多信息,请参阅:http://nshipster.com/ibinspectable-ibdesignable/

总结

以上是内存溢出为你收集整理的swift3 – 使用用户定义的运行时属性的UIView阴影全部内容,希望文章能够帮你解决swift3 – 使用用户定义的运行时属性的UIView阴影所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1089716.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存