iPhone SDK:如何绘制具有半透明渐变和阴影的圆角矩形

发布于 2024-07-21 15:42:13 字数 540 浏览 13 评论 0原文

我正在尝试通过为我的应用程序手动创建部分 UI(在本例中为图表)来在 iPhone 上进行绘图。 本质上,我想绘制一个带有圆角、阴影和半透明渐变的矩形作为矩形的填充。 这是我的 Photoshop 样机的屏幕截图: 替代文本 http://img36.imageshack.us/img36/6097/picture1nvf.png< /a>

我已经使用 CALayer 创建了一个带有阴影的实心圆角矩形,但是为了让形状和阴影完全显示出来,我必须设置一个不允许我的背景颜色使我的半透明渐变成为图层的唯一填充。

我已经在这方面工作了一段时间,并且已经阅读了整个核心动画编程指南,但我还没有取得任何进一步的进展。 我觉得答案就在我眼皮底下。

我缺少什么?

PSI 知道我可能可以使用图像文件来完成此操作,但我正在尝试这样做,因为我想学习,并且有一天我想用它做一些更精美的动画。

I'm experimenting with drawing on the iPhone by manually creating parts of the UI for my application (In this case a graph). Essentially, I want to draw a rectangle with rounded corners, a drop-shadow, and a semi-transparent gradient as the fill of the rectangle. Here is a screen shot of my photoshop mockup:
alt text http://img36.imageshack.us/img36/6097/picture1nvf.png

I've gotten has far as creating a solid rounded rectangle with a drop shadow using a CALayer, but in order to get the shape and drop shadow to show up at all I have to set a background color which does not allow me to make my semi-transparent gradient the only fill of the layer.

I've been working on this for a bit now, and have read the entire Core Animation programming guide but I haven't made any further progress. I feel like the answer is right under my nose.

What am I missing?

P.S.I know I could probably use an image file to accomplish this but I'm trying to do it this way because I want to learn, and someday I want to do some fancier animation stuff with this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

野味少女 2024-07-28 15:42:14
  1. 用阴影填充圆角矩形。 以 100% 不透明度执行此填充 - 您将在下一步中实现透明度。
  2. 使用“目标输出”混合模式,以(1.0 - 所需的不透明度)填充相同的圆角矩形,但不添加阴影。 例如,如果您想要 40%,则按 60% 进行“目的地输出”抽奖。 可以将其视为从图像的不透明度中减去那么多。
  1. Fill the rounded rectangle with the shadow. Do this fill at 100% opacity—you'll effect the transparency in the next step.
  2. Fill the same rounded rectangle without the shadow, using Destination Out blend mode, at (1.0 - the desired opacity). For example, if you want 40%, do the Destination-Out draw at 60%. Think of it as subtracting that much from the opacity of the image.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文