programing

스토리보드에서 선택한 탭 모음 항목의 색상 변경

bestprogram 2023. 5. 12. 22:48

스토리보드에서 선택한 탭 모음 항목의 색상 변경

탭 표시줄 항목을 기본 파란색이 아닌 분홍색으로 변경하려고 합니다.

Xcode 6의 스토리보드 편집기를 사용하여 이를 수행하려면 어떻게 해야 합니까?

파란색 배경은 작동하지만 분홍색은 작동하지 않는 현재 설정입니다.

여기에 이미지 설명 입력

StoryBoard의 "tintColor"라는 런타임 색상 특성을 추가합니다.이것은 작동합니다(Xcode 8 이상의 경우).

선택되지 않은 색상을 원하시면..추가할 수 있습니다.unselectedItemTintColor너무.

tintColor를 런타임 속성으로 설정

이 우아한 솔루션은 SWIFT 3.0, SWIFT 4.2 SWIFT 5.1에서 잘 작동합니다.

스토리보드에서:

  1. 표시줄 선택
  2. 탭 모음에서 선택한 아이콘의 원하는 색상에 대해 tintColor라는 런타임 특성 설정
  3. 탭 모음에서 선택되지 않은 아이콘의 원하는 색상에 대해 선택되지 않은 ItemTintColor라는 런타임 특성 설정

여기에 이미지 설명 입력

편집: 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 값을 사용할 수 있습니다.

Xcode8변경했습니다.ImageTint스토리보드에서 볼 수 있고 잘 작동합니다.

여기에 이미지 설명 입력

결과:

여기에 이미지 설명 입력

스위프트 3 | Xcode 10

모든 모음 항목을 동일한 색상(선택 및 선택 취소)으로 만들려면...


1단계

이미지 자산이 Render As = Template Image로 설정되어 있는지 확인합니다.이를 통해 색상을 상속할 수 있습니다.

Xcode 자산


2단계

스토리보드 편집기를 사용하여 다음과 같이 탭 모음 설정을 변경합니다.

  • 표시줄: 이미지 색조를 선택한 아이콘을 상속할 색상으로 설정합니다.
  • 표시줄: 막대 색조를 탭 표시줄에 원하는 색으로 설정합니다.
  • 보기 설정: 스토리보드 편집기에서 보려는 색에 맞게 색을 조정하면 앱이 실행될 때 아이콘 색에 영향을 주지 않습니다.

Xcode 스토리보드 편집기


3단계

1단계와 2단계에서는 선택한 아이콘의 색상이 변경됩니다.선택하지 않은 항목의 색상을 계속 변경하려면 코드로 변경해야 합니다.스토리보드 편집기를 통해 할 수 있는 방법을 찾지 못했습니다.

사용자 지정 탭 모음 컨트롤러 클래스 생성...

//  TabBarController.swift

class TabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // make unselected icons white
        self.tabBar.unselectedItemTintColor = UIColor.white
    }
}

사용자 지정 클래스를 탭 표시줄 장면 컨트롤러에 할당합니다.

Xcode 스토리보드 편집기


스토리보드 편집기를 통해 선택되지 않은 아이콘 색상을 변경하는 방법을 알게 되면 알려주시기 바랍니다.감사합니다!

이 가장 좋은 방법은 변화하는 것입니다.Image Tint에서.

여기에 이미지 설명 입력

색상을 변경할 뷰 컨트롤러의 뷰에 이 코드를 놓습니다.

[[UITabBar appearance] setSelectedImageTintColor:[UIColor whiteColor]];

키 경로별로 선택한 영상 막대 색조를 설정할 수도 있습니다.

여기에 이미지 설명 입력

이것이 당신에게 도움이 되기를 바랍니다!!감사해요.

8 10, 3: XCode 8.2, iOS 10, Swift 3: »unselectedItemTintColor 성속한의 .tabBar:

self.tabBar.unselectedItemTintColor = UIColor(red: 0/255.0, green: 200/255.0, blue: 0/255.0, alpha: 1.0)

스토리보드를 사용하여 색을 변경할 수 있지만 코드를 사용하여 색을 변경하려면 매우 쉽습니다.

선택한 막대의 색상을 변경하려면 이 옵션을 사용합니다.

   [[UITabBar appearance] setTintColor:[UIColor blueColor]];

선택하지 않은 막대(iOS 10)를 변경하기 위한 것입니다.

   [[UITabBar appearance] setUnselectedItemTintColor:[UIColor yellowColor]];

모든 탭 모음의 색상을 변경할 수 있는 줄입니다.

   [[UITabBar appearance] setBarTintColor:[UIColor whiteColor]];

어떻게든 스토리보드만으로는 탭바 선택 항목인 틴트 색상을 변경할 수 없기 때문에 ViewDidLoad에 아래 코드를 추가했습니다. 이것이 도움이 되길 바랍니다.

[[UITabBar appearance] setTintColor:[UIColor whiteColor]]; 

앱 대리자 -did_finish_launching_with_options 함수에 이 코드를 추가합니다.

UITabBar.appearance().tintColor = UIColor( red: CGFloat(255/255.0), green: CGFloat(99/255.0), blue: CGFloat(95/255.0), alpha: CGFloat(1.0) )

필요한 색상의 RGB를 입력합니다.

스토리보드의 Image Tint가 저에게 도움이 되었습니다.

여기에 이미지 설명 입력

iOS 10에서 작동하는 Swift 3의 솔루션은 다음과 같습니다.

먼저 자신의 탭 바 컨트롤러 하위 클래스를 만들어 스토리보드의 탭 컨트롤러에 추가합니다.viewDidLoad()탭 표시줄을 사용자 정의할 수 있습니다.여기에 명시되어야 합니다.tintColortabBar선택하지 않은 항목의 색이 아니라 선택한 항목의 색을 나타냅니다!선택하지 않은 항목의 색상을 변경하려면 각 항목을 반복하여 이미지의 원래 색상을 사용하여 자동으로 회색으로 렌더링되지 않도록 하는 것이 좋습니다.

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]];

언급URL : https://stackoverflow.com/questions/26835148/change-tab-bar-item-selected-color-in-a-storyboard