如何在我自己的UIViews上创建“玻璃”效果?

时间:2010-06-01 02:36:38

标签: objective-c iphone uiview calayer clipping

我正在开发一款具有一些非矩形UI元素的iPhone应用。目前,我正在对UIView进行子类化,而在drawRect我正在使用CGPathRef绘制黑色边框和颜色填充的内部。

我想让这些物品看起来更像“按钮”,所以我希望有一些相同的“玻璃效果”,例如用于iPhone应用程序的图标(当您未将UIPrerenderedIcon设置为true时)或其他按钮。

我在周围寻找,并发现了这一点,这似乎与我的需要相近:

Gradients on UIView and UILabels On iPhone

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

看起来视图上的mask属性是正确的去处,这似乎要求我创建一个新的CALayer对象,其中剪切以某种方式应用于它

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

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

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

1 个答案:

答案 0 :(得分:0)

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