【问题标题】:How can I create "glass" effect on my own UIViews?如何在我自己的 UIView 上创建“玻璃”效果?
【发布时间】:2011-02-26 04:22:08
【问题描述】:

我正在开发一个包含一些非矩形 UI 元素的 iPhone 应用程序。目前,我正在继承UIView,在drawRect 中,我使用CGPathRef 来绘制黑色边框和填充颜色的内部。

不过,我想让这些项目看起来更像“按钮”,所以我希望有一些与例如在上面使用的相同类型的“玻璃效果” iPhone 应用程序的图标(当您未将 UIPrerenderedIcon 设置为 true 时)或其他按钮中的图标。

我四处寻找,发现这个,似乎接近我需要的:

Gradients on UIView and UILabels On iPhone

但我很难弄清楚如何将渐变剪裁到我的形状。

视图上的mask 属性似乎是正确的去处,这似乎需要我创建一个新的CALayer 对象,并以某种方式对其应用剪辑。

我希望有一些很好的便利功能可以做到这一点,但如果我需要编写更复杂的东西,那也没关系。我只是很难弄清楚如何将路径应用为蒙版。我不确定是否需要创建一个新的绘图上下文并将路径绘制到其中?然后使用CGContextClip?

我想我已经找到了很多正确的部分,我只是很难理解如何组装它们。

有人可以指出我正确的方向吗? (我很高兴在文档中阅读更多内容,请为我指明正确的方向。)

【问题讨论】:

    标签: objective-c iphone uiview calayer clipping


    【解决方案1】:

    您可以创建一个 CAShapeLayer 并将其路径设置为您的 CGPathRef。然后将 CAGradientLayer 的 mask 属性设置为您的 shapeLayer。

    【讨论】:

    • 我最近一直在做 iPhone 开发,但我会在某个时候尝试一下,让你知道结果。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    相关资源
    最近更新 更多