如何在我自己的 UIView 上创建“玻璃”效果?
Posted
技术标签:
【中文标题】如何在我自己的 UIView 上创建“玻璃”效果?【英文标题】:How can I create "glass" effect on my own UIViews? 【发布时间】:2011-02-26 04:22:08 【问题描述】:我正在开发一个包含一些非矩形 UI 元素的 iPhone 应用程序。目前,我正在继承UIView
,在drawRect
中,我使用CGPathRef
来绘制黑色边框和填充颜色的内部。
不过,我想让这些项目看起来更像“按钮”,所以我希望有一些与例如在上面使用的相同类型的“玻璃效果” iPhone 应用程序的图标(当您未将 UIPrerenderedIcon
设置为 true 时)或其他按钮中的图标。
我四处寻找,发现这个,似乎接近我需要的:
Gradients on UIView and UILabels On iPhone
但我很难弄清楚如何将渐变剪裁到我的形状。
视图上的mask
属性似乎是正确的去处,这似乎需要我创建一个新的CALayer
对象,并以某种方式对其应用剪辑。
我希望有一些很好的便利功能可以做到这一点,但如果我需要编写更复杂的东西,那也没关系。我只是很难弄清楚如何将路径应用为蒙版。我不确定是否需要创建一个新的绘图上下文并将路径绘制到其中?然后使用CGContextClip
?
我想我已经找到了很多正确的部分,我只是很难理解如何组装它们。
有人可以指出我正确的方向吗? (我很高兴在文档中阅读更多内容,请为我指明正确的方向。)
【问题讨论】:
【参考方案1】:您可以创建一个 CAShapeLayer 并将其路径设置为您的 CGPathRef。然后将 CAGradientLayer 的 mask 属性设置为您的 shapeLayer。
【讨论】:
我最近一直在做 iPhone 开发,但我会在某个时候尝试一下,让你知道结果。谢谢!以上是关于如何在我自己的 UIView 上创建“玻璃”效果?的主要内容,如果未能解决你的问题,请参考以下文章