이미지와 같이 맞춤 탭 막대를 만들고 싶습니다. 이 결과를 얻기 위해 UITabBar
서브 클래 싱을 시작하는 방법을 모르겠습니다. 만약 내가 루트 UIViewController
을 가지고 있고, interface builder
(UIView, 이미지, 원 버튼 등)을 통해 탭 바의 인식을 만들고, UIViewController
의 맵에 ContainerView
을 추가한다면? 그렇다면이 접근법에 대한 단점은 무엇입니까? 크기 조정 문제 (iPhone 6에서는 좋지만 iPhone X에서는 좋지 않음)가 동적으로 조정되는 탭 막대가 없으므로?
0
A
답변
0
UIKit
구성 요소를 UITabBar
과 같은 부분으로 분해하면 찾을 수있는 모든 항목이 우리가 모두 사용할 수있는 동일한 UIKit
구성 요소입니다. 우리가 매번 작동한다는 것을 알고 있기 때문에 때때로 애플의 물건을 사용하는 것이 좋습니다. 하지만 때로는 애플의 물건을 사용하는 것이 좋지 않은데, 그 이유는 항상 미리 제작 된 구성 요소에 개입하는 것을 좋아하지 않고 종종 수정할 수있는 바로 그 행동을 숨기기 때문입니다.
당신이하고있는 일을 알고 있거나 배우기를 매우 기꺼이한다면, 나만의 물건 만들기에 대한 두려움이 없도록하는 것이 좋습니다. UIView
에 UIButton
개의 하위보기가 있거나 다른 UIView
개의 하위보기에 탭 제스처 인식기가 첨부되어 있습니다. 하위보기 컨트롤러가있는 컨테이너보기 컨트롤러 인 마스터보기 컨트롤러가있는 경우 마스터에 탭 막대를 놓고 항상 모든 화면 위에 겹쳐있는 합법적 인 탭 막대가 있습니다 (표시된보기 컨트롤러, 그것은 정확히 우리가 원하는 행동입니다).
그리고 지금까지 아이폰 X는 우려하고 안전한 지역은 단지에 적용 될 때 어떻게 평소 어떤보기 그 때문에 모든 사용자 정의 탭 표시 줄은 다음과 같습니다
if #available(iOS 11.0, *) {
tabBar.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor).isActive = true
tabBar.widthAnchor.constraint(equalTo: view.safeAreaLayoutGuide.widthAnchor).isActive = true
tabBar.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor).isActive = true
} else {
tabBar.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
tabBar.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
tabBar.bottomAnchor.constraint(equalTo: bottomLayoutGuide.topAnchor).isActive = true
}
tabBar.heightAnchor.constraint(equalToConstant: 44).isActive = true
그리고 대한 우려
크기를 조정하면 경우 마스터 뷰 컨트롤러에서 탭 바의 제약 조건 (어쨌든해야 할 것처럼)을 줄이면 가능한 한 모든 방법으로 스트레칭 및 회전합니다.