2013-09-23 1 views
2

일부 UIBarButtonItems와 함께 6.1 SDK를 사용하여 컴파일 된 iOS 앱이 있습니다. TintColor는 ViewWillAppear에서 프로그래밍 방식으로 설정되어 있습니다.iOS 6.1 용으로 빌드하고 iOS 7에서 실행할 때 UIBarButtonItem의 TintColor를 어떻게 변경합니까?

UIBarButtonItem leftButton = new UIBarButtonItem(...); 
leftButton.TintColor = UIColor.FromRGB(231, 231, 231); 

이 결과.

Custom UIBarButtonItem TintColor on 6.1

나는 7.0으로 내 아이폰을 업그레이드했지만 여전히 이전 버전과의 장치 호환성 (비즈니스 이유)에 대한 6.1 SDK에 대한 구축 할 필요가있다.

6.1 SDK를 사용하여 응용 프로그램을 빌드하고 iOS 7.0을 실행하는 iPhone에서 실행할 때 툴바는 다음과 같습니다.

Custom UIBarButtonItem TintColor on 7.0

내가이가 영향을 미쳤다 경우 UIWindow의하려면 tintColor보고 설정했는데, 아이폰 OS 7 UI 변환 설명서를 읽어 가졌어요. 그렇지 않았습니다.

흥미로운 점은이 양식에서 ActionSheet를 표시 할 때 ActionSheet가 닫히면 취소 및 저장 버튼의 배경이 "검은 색"에서 "흰색"으로 변경됩니다. 나는 이것이 왜 일어나는 지 조사 중이다.

iOS 7.0에서 TintColor를 프로그래밍 방식으로 변경할 수 없다면 버튼에 대한 사용자 정의 배경 이미지를 만들려고합니다.

Greyish Button

그리고 기존의 배경을 무시할 SetBackgroundImage를 사용합니다.

미리 감사드립니다.

업데이트 - 09.24.13 poupou의 대답은 8시 37분에서 나에게 해결책을 준 WWDC 비디오 (link)에 저를 지적

- 내가 탐색 모음의하려면 tintColor를 설정할 필요가 대신 설정 특정 버튼의 TintColor.

NavigationBar.TintColor = UIColor.FromRGB(231, 231, 231); 

답변

1

나는이 효과를 가지고있는 경우 UIWindow의하려면 tintColor보고 설정했습니다. 그렇지 않았습니다.

그것은해야 -하지만 당신은 다른 UI 요소에 TintColor을 설정하는 경우 다음 주 UIWindow에 한 세트보다 우선합니다.

TintColor에 대한 WWDC 2013 (세션 214)의 전체 세션과 iOS7에서 작동하는 방식 (Tic Tac Toe 샘플의 경우)입니다.

당신이 실행해야하는 경우/당신이 할 수있는 iOS 버전에 특정한 몇 가지 코드 제외 :

if (UIDevice.CurrentDevice.CheckSystemVersion (7,0)) { 
    // iOS 7.0 and later 
} else { 
    // iOS 6.1 and earlier 
} 
관련 문제