애셋 카탈로그에 설정된 이미지의 "렌더링 방식"이 "템플릿 이미지"로 설정되어 있어도 내 탭 막대의 아이콘에 흰색 배경이 나타납니다. 다음은 몇 가지 사례는 다음과 같습니다iOS 시뮬레이터는 템플릿 렌더링 모드로 투명한 이미지에 흰색 배경을 표시합니다.
에 모든 설정 없음 추진 배경 UITabBar
같은 이미지를 어둡게하고 대비
같은 아이콘 뒤의 배경을 가지고 변경 이미지를 사용하지만 빨간색 배경을 사용하는 경우 UITabBar.appearance().barTintColor = red
여기에 아이폰 OS 설정과 3 개 크기의 수출 스케치의 아이폰 OS UI 라이브러리에서 새로 수출 형태는 다음과 같습니다
내가
을 사용하는 최종 PNGPixelmator에서 볼 때의 투명도를 나타내는 PNG
이미지는 자산 카탈로그에서 프로그래밍 방식으로 템플릿 모드로 설정됩니다. 각 배경 UITabBar
의 appearance()
로 설정하고 나는 UITabBarController
서브 클래스 아니에요, 나는 스토리 보드를 사용하지 않는, 그리고 여기에 내가 단순화 var에 이름이 문제를 재현 할 수있는 모든 코드입니다 : 여기
// AppDelegate
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
let tabBarController = UITabBarController()
// let controllers = [...]
tabBarController.setViewControllers(controllers, animated: false)
UITabBar.appearance().tintColor = UIColor.brown
UITabBar.appearance().barTintColor = // red, green, etc
window!.rootViewController = tabBarController
window!.makeKeyAndVisible()
return true
}
과 내가 그 컨트롤러의 UITabBarItem
설정 여기서 이러한 코드 몇 줄에서 제외
// The controller with the tab icon
override init(style: UITableViewStyle) {
super.init(style: style)
let booImage = UIImage(named: "boo")?.withRenderingMode(.alwaysTemplate)
self.tabBarItem = UITabBarItem(title: "Controller", image: booImage, tag: 1)
}
을, 이것은 다른 변화와 새로운 프로젝트입니다. 모양을 원하는 색으로 채울 수 있기 때문에 이미지가 템플릿이라는 것을 알 수 있습니다. 그러나 흰색 배경이 항상 남아 있습니다.
문서화에 따르면 템플릿 이미지를 UITabBarItem
아이콘으로 사용하는 데 필요한 다른 단계는 없습니다. 누구나 UITabBarItems에 흰색 배경이 나타나는 이유는 누구나 알 수 있습니까? 시뮬레이터에서 실행된다는 사실과 관련이 있습니까?
는 (내 대답은 아래를 참조) 복제 할 수 없습니다. 간단한 데모 프로젝트를 어딘가에 게시하고 싶다면 다운로드하고 기꺼이 살펴 보겠습니다. – matt
알았어, 미안해! 다시는하지 않겠습니다. 편집 : 전에는 그 일을 기억하지 않지만, 배운 교훈은 – bpercevic
괜찮습니다. 우리가 포럼이 아니라는 것을 기억하십시오. "범프"하거나 "해결 된"또는 유사한 것을 추가하지 마십시오. 감사. ;) – Moritz