UITabBar 배지 배경색 변경

2452 단어 iOSUIKitSwift
UITabBar는 각 탭 아이콘의 오른쪽 상단에 배지를 표시할 수 있다.


배지의 표시 내용에 대한 변경은 badgeValue 를 변경하는 것으로 가능하지만, 그 배경색을 변경하는 수단은 준비되어 있지 않다.
그 배경색을 변경하는 방법을 썼다.
func tabbaredit(color:UIColor){
    let tabbar = self.tabBarController!.tabBar
    // search badgeView
    for barButton in tabbar.subviews{
        for buttonSubView in barButton.subviews{
            if NSStringFromClass(buttonSubView.dynamicType) == "_UIBadgeView"{
                buttonSubView.backgroundColor = color
                buttonSubView.layer.cornerRadius = buttonSubView.frame.size.height/2
                for badgeView in buttonSubView.subviews{
                    // change badge background color
                    if NSStringFromClass(badgeView.dynamicType) == "UILabel"{
                        let label:UILabel = badgeView as! UILabel
                        label.backgroundColor = color
                        label.layer.cornerRadius = label.frame.size.height/2
                    }
                    // remove _UIBadgeBackground
                    if NSStringFromClass(badgeView.dynamicType) == "_UIBadgeBackground"{
                        badgeView.hidden = true
                    }
                }
            }
        }
    }
}

상기 메소드를 badgeValue를 변경한 직후에 호출한다.
그러면, 다음과 같이 배지의 배경색이 변경된다.





조금 응용하면 문자색도 변경 가능.

테스트에 사용한 소스



참고



ぃ tp // 코 m / 사토 미코 94 / ms / 3623f8d56 17513579d6
htps : // 기주 b. 이 m / n st / 이오 S 룬 치메 - 헤어 rs / b ぉ b / 뭐 r / F 라메 rks / うきき t. f 라메를 rk

좋은 웹페이지 즐겨찾기