可拉伸图像拉伸部分宽于1px

发布于 2024-09-26 15:10:14 字数 666 浏览 1 评论 0原文

我想创建一个 UIButton,它使用可拉伸图像作为背景图像,这样我就可以轻松地调整按钮的大小以适应不同的标签等。

所以我创建了以下工作正常的代码:

UIImage *bgImage = [[UIImage imageNamed:@"Button-Template.png"]stretchableImageWithLeftCapWidth:2 topCapHeight:2];
UIButton *loginButton = [UIButton buttonWithType:UIButtonTypeCustom];
loginButton.frame = CGRectMake(180, 280, 112, 40);
[loginButton setBackgroundImage:bgImage forState:UIControlStateNormal];
// some more stuff

现在这里有一个问题:iPhone SDK 假设图像的可拉伸部分的宽度恰好是一个像素,这在我的图像中不是这种情况,因为我想创建一个图案,这需要每两个像素重复一次(因此 2 个像素是一个图案单位)。我在文档中没有找到是否可以改变可拉伸部分宽度的值(在我的例子中是 2 而不是 1)的信息,有人知道如何做到这一点或者我如何通过解决方法实现我的目标?现在我自己写拉伸部分似乎有点牵强(尽管我可能不得不回到这一点)。

谢谢!

I would like to create a UIButton which uses a stretchable image as Background image such as that I can easily resize the button for different labels etc.

So I created the following code which works fine:

UIImage *bgImage = [[UIImage imageNamed:@"Button-Template.png"]stretchableImageWithLeftCapWidth:2 topCapHeight:2];
UIButton *loginButton = [UIButton buttonWithType:UIButtonTypeCustom];
loginButton.frame = CGRectMake(180, 280, 112, 40);
[loginButton setBackgroundImage:bgImage forState:UIControlStateNormal];
// some more stuff

Now here is the catch: The iPhone SDK assumes that the strechable part of the image is exactly one pixel in width, which is not the case in my image as I want to create a pattern, which requires a repetition every two pixels (so 2 Pixels are one pattern unit). I have found no information in the docs whether it is possible to alter the value of the strechable part width (in my case 2 instead of 1), does anybody know how to do this or how I could achieve my goal with a workaround? Writing the stretching part on my own seems a little far fetched right now (though I might have to get back to this).

Thanks!

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

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

发布评论

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

评论(2

彩扇题诗 2024-10-03 15:10:14

从 iOS 5.0 开始,您可以使用 ressizedImageWithCapInsets:

检查 UIImage 类参考

但此方法仅适用于 iOS >= 5.0 设备,因此可以是
暂时拒绝。

From iOS 5.0 on you could use resizableImageWithCapInsets:

Check UIImage Class Reference

But this method only works on iOS >= 5.0 devices, so that can be a
turn down for now.

比忠 2024-10-03 15:10:14

没有使用 2 像素作为拉伸宽度的 API。您必须在自定义视图中自行实现此行为,或使用具有特定宽度的图像。

There is no API for using 2 pixels as the stretch width. You'll have to implement this behaviour yourself in a custom view, or use an image with a specific width.

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