我正在开发一款具有一些非矩形UI元素的iPhone应用。目前,我正在对UIView
进行子类化,而在drawRect
我正在使用CGPathRef
绘制黑色边框和颜色填充的内部。
我想让这些物品看起来更像“按钮”,所以我希望有一些相同的“玻璃效果”,例如用于iPhone应用程序的图标(当您未将UIPrerenderedIcon
设置为true时)或其他按钮。
我在周围寻找,并发现了这一点,这似乎与我的需要相近:
Gradients on UIView and UILabels On iPhone
但我很难弄清楚如何将渐变剪裁成我的形状。
看起来视图上的mask
属性是正确的去处,这似乎要求我创建一个新的CALayer
对象,其中剪切以某种方式应用于它
我希望有一些很好的便利功能,但是如果我需要写一些更复杂的东西,那也没关系。我只是很难弄清楚如何将路径应用为掩码。我不确定是否需要创建一个新的绘图上下文并绘制路径?然后使用CGContextClip
?
我想我已经找到了很多正确的部分,我只是很难理解如何组装它们。
有人可以指出我正确的方向吗? (我很高兴在文档中阅读更多内容,请指出我正确的方向。)
答案 0 :(得分:0)
您可以创建CAShapeLayer并将其路径设置为CGPathRef。然后将CAGradientLayer的mask属性设置为shapeLayer。