目标C:如何在导航按钮和标签栏中保持图像分辨率/质量

时间:2011-07-25 10:55:53

标签: objective-c ios uiimage resolution

我试图通过以下代码将图像放到导航项目的右键

//Add image to right bar button in navigation bar
UIBarButtonItem *rightBarButton = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"refresh.png"] style:UIBarButtonItemStyleBordered target:self action:@selector(getData)];

self.navigationItem.rightBarButtonItem = rightBarButton;
[rightBarButton release];

图像I的尺寸为52 X 52像素。 如果我只是将图像添加到按钮而不改变大小,我将得到一个不成比例的显示,如下所示

enter image description here

但是,如果我在添加到按钮(18 X 18像素)之前尝试缩小图像,则iPhone视网膜显示屏上的图像看起来会模糊

enter image description here

这也适用于iPhone视网膜显示屏的标签栏。

enter image description here

有没有办法在按钮或标签中使用大图像而不会出现不成比例的显示?或者有没有办法保持图像的分辨率?

2 个答案:

答案 0 :(得分:6)

你需要创建两个图形资源,一个是正常大小,另一个是视网膜的两倍,文件名是@ 2x。您可以在以下网址阅读更多信息:

https://developer.apple.com/library/ios/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/SupportingHiResScreensInViews/SupportingHiResScreensInViews.html#//apple_ref/doc/uid/TP40010156-CH15-SW1

答案 1 :(得分:2)

在界面构建器中查看图像的边缘插入。您可以调整左侧的值以在UIButton中调整更大的图像。

Ib Frame

UI按钮的等效属性为[uiButton setImageEdgeInsets:<#(UIEdgeInsets)#>]