【问题标题】:Back button image for UIBarButtonItem has bizarre defect on Retina iPhone displayUIBarButtonItem 的后退按钮图像在 Retina iPhone 显示屏上存在奇怪的缺陷
【发布时间】:2012-03-18 23:38:17
【问题描述】:

我使用 UIBarButtonItem 的 appearance 方法自定义后退按钮的背景图像,但在 iPhone Retina 显示屏上,我在使用图像时发现了一个奇怪的问题。

这是一个非 Retina 后退按钮的示例;你会发现它看起来不错:

但是,Retina 版本看起来不太好。看起来好像图像的顶部几个像素重新出现在下方:

其他人以前见过这个吗?你是怎么解决的?

这是我在 appDelegate 中用于自定义 UIBarButtonItem 的后退按钮的代码:

UIImage *backButton = [[UIImage imageNamed:@"backButton"] resizableImageWithCapInsets:UIEdgeInsetsMake(5, 15, 5,5)];

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButton forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

【问题讨论】:

    标签: iphone uibarbuttonitem retina-display appearance


    【解决方案1】:

    想通了。我的图像只有 27 像素高;它应该是 30 像素高。

    我没有注意到我的矩形 UIBarButtonItem 图像上的问题,因为矩形可以毫无问题地重新缩放 --- 但是对于一个尖的 UIBarButtonItem 图像,你不能重新缩放而不在左侧从尖的左侧显示奇怪的伪影箭头。

    tl;dr:将 UIBarButtonItem 图像的 1x 和 @2x 尺寸分别设置为 30 和 60 像素。

    【讨论】:

      【解决方案2】:

      以下代码来自我的项目,我没有问题。 尝试使用下面的代码 sn -p

      UIImage* blueBack = [UIImage imageNamed:@"back.png"];
      [[UIBarButtonItem appearance] setBackButtonBackgroundImage:blueBack forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-12
        • 2011-04-24
        相关资源
        最近更新 更多