탭 막대 항목을 기본 파란색 대신 분홍색으로 변경하고 싶습니다.
Xcode 6에서 스토리 보드 편집기를 사용하여 어떻게 이것을 할 수 있습니까?
다음은 작동하지 않는 현재 설정이며 파란색 배경은 작동하지만 분홍색은 작동하지 않습니다.
탭 막대 항목을 기본 파란색 대신 분홍색으로 변경하고 싶습니다.
Xcode 6에서 스토리 보드 편집기를 사용하여 어떻게 이것을 할 수 있습니까?
다음은 작동하지 않는 현재 설정이며 파란색 배경은 작동하지만 분홍색은 작동하지 않습니다.
답변:
StoryBoard에서 "tintColor"라는 런타임 색상 속성을 추가하십시오. 이것은 작동합니다 ( Xcode 8 이상 ).
선택하지 않은 색을 원한다면 추가 할 수도 있습니다 unselectedItemTintColor
.
UITabBarItem
온, UINavigationController
내 한 tabBar에 연결이 완벽하게 작동합니다. VC 클래스를 세 번 재사용하므로 코드를 작성하지 않아도 좋습니다. 감사!
이 우아한 솔루션은 SWIFT 3.0 , SWIFT 4.2 및 SWIFT 5.1 에서 훌륭하게 작동합니다 .
스토리 보드에서 :
편집 : iOS 10/12 이상에서 Xcode 8/10 작업 .
Swift에서 xcode 7 이상을 사용하여 AppDelegate.swift 파일에 다음을 추가 할 수 있습니다.
UITabBar.appearance().tintColor = UIColor(red: 255/255.0, green: 255/255.0, blue: 255/255.0, alpha: 1.0)
이것이 완전한 방법의 모습입니다 :
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// I added this line
UITabBar.appearance().tintColor = UIColor(red: 255/255.0, green: 255/255.0, blue: 255/255.0, alpha: 1.0)
return true
}
위의 예에서 내 항목은 흰색입니다. "/255.0"은 0에서 1 사이의 값을 기대하기 때문에 필요합니다. 흰색의 경우 1을 사용했을 수 있습니다. 그러나 다른 색상의 경우 RGB 값을 사용하게됩니다.
스위프트 3 | Xcode 10
당신이하려는 경우 모든 탭 표시 줄 항목에 동일한 색상을 (선택 및 선택 해제) ...
1 단계
이미지 자산이 Render As = Template Image 로 설정되어 있는지 확인하십시오 . 이를 통해 색상을 상속받을 수 있습니다.
2 단계
스토리 보드 편집기를 사용하여 다음과 같이 탭 표시 줄 설정을 변경하십시오.
3 단계
1 단계와 2 단계는 선택한 아이콘의 색상을 변경합니다. 선택되지 않은 항목의 색상을 계속 변경하려면 코드에서 변경해야합니다. 스토리 보드 편집기를 통해 할 수있는 방법을 찾지 못했습니다.
커스텀 탭 바 컨트롤러 클래스 만들기 ...
// TabBarController.swift
class TabBarController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
// make unselected icons white
self.tabBar.unselectedItemTintColor = UIColor.white
}
}
... 및 사용자 정의 클래스를 탭 막대 장면 제어기에 지정하십시오.
스토리 보드 편집기를 통해 선택되지 않은 아이콘 색상을 변경하는 방법을 알고 있다면 알려주십시오. 감사!
self.tabBar.unselectedItemTintColor = UIColor.white
self.tabBar.tintColor = #colorLiteral(red: 0.2, green: 0.7333333333, blue: 0.3450980392, alpha: 1)
나를 위해 일해
이 코드를 색상을 변경하려는보기 컨트롤러의 viewDidLoad에 넣으십시오.
[[UITabBar appearance] setSelectedImageTintColor:[UIColor whiteColor]];
스토리 보드별로 UITabBarItem 색상을 변경할 수 있지만 코드로 색상을 변경하려면 매우 쉽습니다.
// 선택된 막대의 색상을 변경하는 데 사용
[[UITabBar appearance] setTintColor:[UIColor blueColor]];
// 선택되지 않은 바 변경 (iOS 10)
[[UITabBar appearance] setUnselectedItemTintColor:[UIColor yellowColor]];
// 모든 tabbar의 색상 변경을위한이 줄
[[UITabBar appearance] setBarTintColor:[UIColor whiteColor]];
이것은 iOS 10에서 작동하는 Swift 3의 솔루션입니다.
먼저, 고유 한 탭 막대 컨트롤러 서브 클래스를 작성하여 스토리 보드의 탭 컨트롤러에 추가하십시오. 에서 viewDidLoad()
방법 당신은 다음 탭 표시 줄을 사용자 정의 할 수 있습니다. 여기서 tintColor
속성은 tabBar
선택되지 않은 항목의 색상이 아니라 선택한 항목의 색상을 나타냅니다! 선택하지 않은 항목의 색상을 변경하려면 각 항목을 반복하고 이미지의 원래 색상을 사용하여 회색으로 자동 렌더링되지 않는 것이 좋습니다.
class CustomTabBarVC: UITabBarController
{
override func viewDidLoad()
{
super.viewDidLoad()
self.tabBar.tintColor = AppColor.normalRed
self.tabBar.barTintColor = .white
self.tabBar.isTranslucent = true
if let items = self.tabBar.items
{
for item in items
{
if let image = item.image
{
item.image = image.withRenderingMode( .alwaysOriginal )
}
}
}
}
}
이 방법의 유일한 단점은 항목 이미지에 원하는 색상이 이미 있어야한다는 것입니다.
UITabBarController
스토리 보드에서을 서브 클래 싱 하고이를 대체 할 수 있습니다 . 당신에 viewDidLoad
서브 클래스의 구현이 전화 :
[self.tabBar setTintColor:[UIColor greenColor]];
'UITabBar' does not have a member named 'setSelectedImageTintColor'
self.tabBar.setSelectedImageTintColor = UIColor.greenColor
그것은 올바른인지 확실하지 경우
tintColor
하지 selectedImageTintColor
BTW, selectedImageTintColor
아이폰 OS 8에서 더 이상 사용되지 않습니다