2012-03-18 2 views
1

UBarButtonItem에서 appearance 메서드를 사용하여 뒤로 버튼의 배경 이미지를 사용자 정의하지만 iPhone Retina 디스플레이에서 이미지를 사용할 때 기괴한 문제가 발생합니다.UIBarButtonItem의 뒤로 버튼 이미지가 Retina iPhone 디스플레이의 기괴한 결함을 가지고 있습니다.

다음은 비 망막 뒤로 버튼의 예입니다. 당신은 잘 보이는 것을 볼 수 있습니다 :

enter image description here

그러나, 망막 버전이 떨어져 보인다. 다른

enter image description here

사람이 전에 본 : 이미지의 상단 몇 픽셀 아래로 아래에 다시 출현하는 것처럼 나타납니다? 어떻게 그걸 고쳤습니까?

여기가 UIBarButtonItem의 뒤로 버튼을 사용자 정의 내 AppDelegate에에서 사용하고 코드입니다 :

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

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

답변

2

이 그것을 알아 냈다. 내 이미지는 27 픽셀 밖에되지 않았습니다. 30 픽셀의 키가 있어야합니다.

직사각형이 문제없이 다시 조정할 수 있기 때문에 직사각형 UIBarButtonItem 이미지에서 문제를 발견하지 못했습니다. 그러나 뾰족한 UIBarButtonItem 이미지를 사용하면 왼쪽에서 이상한 아티팩트가 보이지 않고 다시 스케일을 조정할 수 없습니다. 지적했다.

tl; dr : 1x 및 @ 2x 크기에 대해 각각 30 및 60 픽셀의 UIBarButtonItem 이미지를 만듭니다.

0

Follwoing 코드는 내 프로젝트에서 가져온 것으로, 문제가 없습니다. 아래 코드를 사용해보세요

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