在过去的几个小时里,我一直在摸不着头脑。是否可以在中创建带有自定义图像的标准UIBarButtonItem
?我想要的只是标准的蓝色按钮,但是里面有一个代表偏好的图像(我自己创建的螺丝刀或齿轮)。我宁愿不使用Photoshop来做这件事,因为我希望每一个像素都是完美的和未来的证据,以防Apple发布更高分辨率的iOS设备。
我在GitHub上找到了一个精彩的项目,包括iOS附带的每个图形元素,并且我已经提取了Apple在创建标准UIBarButtonItems
时使用的图像。问题是,它不能以我所知道的方式调整到适当的尺寸。如果不能用代码做我想做的事,那么也许有人可以告诉我如何使用这个图像。
GitHub - UIKit-Artwork-Extractor
UINavigationBarDefaultButton@2x.png
谢谢!
答案 0 :(得分:2)
只需用单一颜色创建图像(只有alpha通道很重要),并使用initWithImage:style:target:action:
和UIBarButtonItemStyleBordered或UIBarButtonItemStyleDone样式。
如果您想要全彩色图像,则必须使用链接的图像。秘诀是通过复制Android 9-patch image样式中的“中间”列和像素行来调整大小,而不是通过缩放整个事物。
答案 1 :(得分:1)
通过使它们可伸缩来使用这样的图像。基本上,您只需要在调整图像大小时拉伸图像的中间部分,而不应缩放左右顶盖,以避免失真。
UIImage *buttonImage = [UIImage imageNamed:@"UINavigationBarDefaultButton.png"];
UIImage *stretchableButtonImage = [buttonImage stretchableImageWithLeftCapWidth:5 topCapHeight:0];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setBackgroundImage:stretchableButtonImage forState:UIControlStateNormal];
但是,在您的情况下,为什么不使用UIBarButtonItem
或UIBarButtonItemStyleDone
作为其风格的UIBarButtonItemStyleBordered
?