UIBarButtonItem图像正在拉伸,即使使用的图像是建议的20 x 20 pts

时间:2014-09-28 14:53:28

标签: ios objective-c iphone xcode

我正在尝试自定义导航栏,并且有2个按钮项需要显示图标。我刚刚在故事板中创建了条形按钮项目,并将每个图像设置为图标。这些图标都是正确大小的png(20 x 20pt),但是它们显示的尺寸比它们应该大得多,所以它们看起来在导航栏上的两个方向上都是陡峭的。

我在storyboard中做了所有事情,除了我必须在viewDidLoad方法中添加一些代码。我不确定这是否会产生任何影响,但现在是:

//Make the navigation bar transparent
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [UIImage new];
self.navigationController.navigationBar.translucent = YES;
self.navigationController.view.backgroundColor = [UIColor clearColor];

//Setup navigation bar with Avenir Next Regular font and white title color
[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"AvenirNext-Regular" size:17], NSFontAttributeName, nil]];
[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];

我是编码新手,这是我的第一个问题。我会在图像中发布以说明问题,但我需要10个声望点才能做到这一点。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您必须为不同的设备提供多种分辨率的图像。最简单的方法是在Xcode中使用xcassets文件夹并填写所有模板:正常大小,2x,3x。

如果您不想使用xcassets,您必须自己命名文件:

image.png
image@2x.png
image@3x.png

Xcode自动选择正确的尺寸。