2

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

不过,我想让这些项目看起来更像“按钮”,所以我想要一些与 iPhone 应用程序图标(当你不这样做时)使用的相同类型的“玻璃效果” t 设置UIPrerenderedIcon为 true),或在其他按钮中。

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

iPhone 上 UIView 和 UILabels 上的渐变

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

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

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

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

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

4

1 回答 1

0

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

于 2010-09-28T16:34:01.343 回答