使用 Cocoa 平铺 9 个以上图像

发布于 2024-08-27 11:50:23 字数 169 浏览 6 评论 0原文

我想在 drawRect: 中绘制 15 个图像,但我能找到的最大图像是 NSDrawNinePartImage() 我想要 4 个角、顶部/底部填充以及它们之间的 3 行(两个侧面填充和中心填充)

这里推荐什么?九部分 + 2 * 三部分?或者其他什么?

I want to draw 15 images in drawRect: but the biggest I could find was NSDrawNinePartImage() I want 4 corners, top/bottom fill, and 3 rows between them (two side fills and a center fill)

What is recommended here? NinePart + 2 * ThreePart? Or something else?

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

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

发布评论

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

评论(1

梦毁影碎の 2024-09-03 11:50:23

NSDrawNinePartImage 用于绘制一个物体,该物体分为九个对齐的部分,例如井字棋/圈和十字棋盘。

主要用例是圆角矩形 UI 元素,例如按钮。您将有四个固定大小的角、四个可单轴拉伸的边和一个可双轴拉伸的中心。

这与你所描述的不符。三个中心柱?

如果两个额外的列应固定在水平尺寸上,则将每一端的图像放在每个角和每边的单个图像中。然后正常使用 NSDrawNinePartImage

如果两个额外的列是中心列的一部分,因此应该是水平可拉伸的,那么我建议您在 NSCustomImageRep 子类中使用 NSDrawThreePartImage ,并为三个中心中的每一个使用该子类的实例 -列部分图像。然后正常使用 NSDrawNinePartImage

(如果需要,可以在前三段中用“行”代替“列”,用“垂直”代替“水平”。)

NSDrawNinePartImage is for drawing a single thing that's divided into nine aligned sections like a tic-tac-toe/noughts-and-crosses board.

The primary use case for that is a rounded-rectangle UI element, such as a button. You'd have four fixed-size corners, four uniaxially-stretchable sides, and one biaxially-stretchable center.

That doesn't fit with what you're describing. Three center columns?

If the two extra columns should be fixed in horizontal size, then put each end's images together into a single image per corner and per side. Then use NSDrawNinePartImage as normal.

If the two extra columns are part of the center column and so should be horizontally stretchable, then I suggest that you use NSDrawThreePartImage from inside an NSCustomImageRep subclass and use an instance of that subclass for each of three center-column part images. Then use NSDrawNinePartImage as normal.

(Substitute “rows” for “columns” and “vertically” for “horizontally” in the previous three paragraphs if you want.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文