UITabBar가 아닌 UITabBar를 사용하고 있습니다. 사용자가 탭을 클릭 할 때마다 밑줄이 그어진 이미지를 볼 수 있습니다.프로그래밍 방식으로 tabbar 항목을 선택하고 표시기 이미지를 표시합니다.
public override func viewDidLoad() {
super.viewDidLoad()
UITabBar.appearance().selectionIndicatorImage = getImageWithColorPosition(color: UIColor.darkGray, size: CGSize(width:presenterView.frame.size.width/2, height:49), lineSize: CGSize(width:presenterView.frame.size.width/2, height:2))
}
// getImageWithColorPosition는 탭 중 어느 한 사용자가 클릭 만 표시되는 화상을 강조 할 때, 그러나
func getImageWithColorPosition(color: UIColor, size: CGSize, lineSize: CGSize) -> UIImage {
let rect = CGRect(x: 0, y: 0, width: size.width, height: size.height)
let rectLine = CGRect(x: 0, y: size.height-lineSize.height, width: lineSize.width, height: lineSize.height)
UIGraphicsBeginImageContextWithOptions(size, false, 0)
UIColor.clear.setFill()
UIRectFill(rect)
color.setFill()
UIRectFill(rectLine)
let image = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return image
}
public override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
openItem1()
}
public func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
if (item.tag == 0) {
openItem1()
} else {
openItem2()
}
}
UITabBarItem
아래 밑줄 이미지를 추가하기위한 것이다. 사용자가 화면에 처음 도착할 때 기본 탭을 선택하고 싶습니다. 프로그래밍 방식으로 수행 할 때 밑줄 이미지가 표시되지 않습니다. UITabBar의 선택을 프로그래밍 방식으로 트리거 할 수 없다는 스택 오버플로 게시물을 읽었습니다.다른 방법이 있습니까?