如何以编程方式为UIButtons提供光泽外观?

问题描述:

我想为一些iPhone UIButtons添加3D或光泽外观,但不使用PNG或可伸缩图像。我有很多不同形状和大小的按钮,它们具有许多在运行时生成的颜色,因此预渲染的图像在我的情况下是不可行的。

I would like to add 3D or glossy look to some iPhone UIButtons, but do so without the use of PNGs or stretchable images. I have a lot of buttons of varying shapes and sizes with lots of colors which are generated on the fly, so prerendered images are not feasible in my case.

请以编程方式在这些按钮上绘制光泽?

How would you go about drawing the gloss on these buttons programmatically?

这个答案,我提供一些代码在UIView绘制光泽渐变,但

In this answer, I provide some code for drawing a gloss gradient over a UIView, but Mirko's answer to that same question shows a more performant way of doing this.

我创建了一个更加精细的3-D按钮风格,光泽和阴影,作为我的课程的一个例子。该3-D按钮的代码是软件包的一部分,可以从下载(查找MATCGlossyButton UIButton子类)。我在 iTunes U

I created a more elaborate 3-D button style, with gloss and shadowing, as an example for my course. The code for that 3-D button is part of the package that can be downloaded here (look for the MATCGlossyButton UIButton subclass). I describe the drawing of this element in the video for the Quartz 2D class from the spring semester of my iPhone development course on iTunes U.