2009-11-08 3 views
0

UITabBarItem이 선택된 상태에서 강조 표시된 상태 이미지를 변경하고 싶습니까? 하위 클래스로 액세스 할 수 있습니까? 또는 내 자신의 내비게이션 코드를 굴려야합니까?UItabBarItem 하이라이트 상태 이미지

-> 시작 편집 이전에 찾고있는 내용을 분명히 말하지 않았습니다. 장치가 UITabBar의 선택된 상태/이미지에 추가하는 반투명 한 흰색 오버레이 참조를 찾고 있습니다. 이미지보기! http://solomon71.com/images/UITabBarItem.png

+0

처럼보기 컨트롤러 초기화 (또는 ViewWillAppear) 방법으로 직접 사용할 수 있습니까? – wkw

답변

2

강조 표시된 이미지를 설정하는 데 문서화되거나 지원되는 방법이 없습니다. 2.2에서 UITabBarItem을 하위 클래스 화하고 -[UIImage *)selectedImage을 구현하여이 작업을 수행 할 수있었습니다.

엄밀히 말하면 selectedImage는 예약 된 메소드 이름이 아니기 때문에 private API를 호출하지 않습니다. 실제로는 누군가 자신을 사용할 수있는 합당한 이름입니다. 그런 말로하면, 이것은 의도하지 않았으며 향후 릴리스에서 언제든지 중단 될 수 있다고 확신합니다. 이것이 3.x에서 이미 망가 졌다면 나는 충격을받지 않을 것입니다. (나는 클라이언트를 위해 이것을 실험 해본 결과 아무것도 출하하지 않았습니다.)

+0

이 정보를 제공해 주셔서 감사합니다. 3.0 시뮬레이터에서 이것은 여전히 ​​작동합니다. 내 편집 된 질문보기 –

1

이것을 시도하십시오. 당신이 당신의 이미지를 변경할 수 있습니다이를 통해 TabBar의 컨트롤러 대리자 메서드

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 

{ 
    if([tabBarController selectedIndex] == 0) 
    { 
     [viewController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"selected.png"]withFinishedUnselectedImage:[UIImage imageNamed:@"unselect.png"]]; 
    }  
} 

-

내가 좋아 선택한 tabbatitem 이미지를 변경해야합니다.

아니면 그냥 탭을 선택하거나 선택 취소 아이콘을 바꿀 수는

 [viewController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"selected.png"]withFinishedUnselectedImage:[UIImage imageNamed:@"unselect.png"]];