2013-08-13 5 views
0

iOS 5 이상 앱에서 UIToolBar의 배경으로 사용하고 싶은 이미지가 있습니다. 배경 이미지는보기에서 수행 한 작업에 따라 변경됩니다. 이미지가 UIToolBar보다 크기 때문에 이미지를 크기를 늘리는 것이 아니라 크기를 줄여야합니다.UIToolBar 배경 이미지 설정

여기에있는 다른 질문과 문제에 대한 다른 조사를 검토 한 후에 권장되는 해결책이 작동하지 않습니다. 권장 사항은 다음과 같습니다.

UIImage *topimg = [[UIImage imageNamed:@"headerBar-Human.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; 
[_headerBar setBackgroundImage:topimg forToolbarPosition:UIToolbarPositionTop barMetrics:UIBarMetricsDefault]; 

행운을 빌어 UIEdgeInsetsMake 호출에서 다른 값으로 시도했습니다. 문제는 이미지가 전혀 표시되지 않는다는 것입니다. 기본 파란색 도구 모음 배경이 표시됩니다.

resizableImageWithCapInsets 함수를 제거하면 이미지가 표시되지만 툴바가 가리키는 이미지 부분 만 좌표가 조정됩니다.

이미지를 추가하고 도구 모음에 추가했지만 UIImageView를 만들려고했지만 결과는 같습니다.

누구에게 의견이 있습니까?

+0

UIToolBar 또는 UINavigationBat를 사용자 지정하려면 하위 클래스를 만들어야합니다. – zbMax

+0

iOS 5부터 하위 클래스를 만들 필요가 없습니다. backgroundImageForToolbarPosition 메서드가 있습니다. barMetrics : 이미지를 배경으로 추가 할 수 있도록 Apple에서 iOS 5에서 열었습니다. 이것은 내가 문제가있는 곳입니다. –

답변

1

당신은 당신의 backgroundImage의 크기를 조정하기 위해이 기능을 사용할 수 있습니다

- (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize 
{ 
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0); 
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return newImage; 
} 

나는 두 번째 매개 변수로 _headerBar.frame.size 당신과이 함수를 호출하는 것이 좋습니다.

+0

UIImage에 범주로 추가하고 잘 작동합니다. 감사! –