ios – 如何将渐变添加到UIView作为扩展名

ios – 如何将渐变添加到UIView作为扩展名,第1张

概述我试图在 Xcode中为视图添加一些渐变,为了简单起见,我尝试将我的方法添加为UIView的扩展: extension UIView { func applyGradient() { let gradient = CAGradientLayer() gradient.colors = [UIColor(hex: "F5FF8C").cgColor, 我试图在 Xcode中为视图添加一些渐变,为了简单起见,我尝试将我的方法添加为UIVIEw的扩展:

extension UIVIEw {    func applyGradIEnt() {        let gradIEnt = CAGradIEntLayer()        gradIEnt.colors = [UIcolor(hex: "F5FF8C").cgcolor,UIcolor(hex: "F1F99D").cgcolor,UIcolor(hex: "FDFFE0").cgcolor]        gradIEnt.locations = [0.0,0.5,1.0]        self.layer.insertSublayer(gradIEnt,at: 0)    }}

但显然当我在vIEwDIDLoad中调用它时,这不起作用:

self.myVIEw.applyGradIEnt()

有人能指出我做错了什么吗?

解决方法 在这个问题中,你根本没有设置框架.在评论中,您的框架设置不正确.这是应该正常工作的代码:

extension UIVIEw {    func applyGradIEnt() {        let gradIEnt = CAGradIEntLayer()        gradIEnt.colors = [UIcolor.red.cgcolor,UIcolor.green.cgcolor,UIcolor.black.cgcolor]   // your colors go here        gradIEnt.locations = [0.0,1.0]        gradIEnt.frame = self.bounds        self.layer.insertSublayer(gradIEnt,at: 0)    }}

使用您的代码:

使用修改后的代码:

说明

gradIEnt.frame.size = self.frame.size不起作用,而gradIEnt.frame = self.bounds则不行,因为frame属性包含视图的位置和大小,即使你设置了渐变的帧大小,你没有指定渐变的位置……所以渐变从未实际添加到视图中.通过将frame属性直接设置为视图的边界,还可以在视图中添加渐变的位置.

总结

以上是内存溢出为你收集整理的ios – 如何将渐变添加到UIView作为扩展名全部内容,希望文章能够帮你解决ios – 如何将渐变添加到UIView作为扩展名所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1077889.html

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

发表评论

登录后才能评论

评论列表(0条)

保存