탭 표시줄의 높이와 문자의 위치와 크기를 바꾸어 문자만 있는 탭 표시줄을 만듭니다

9489 단어 Swift
기본적으로 탭 표시줄은 아이콘과 작은 문자로 구성되어 있습니다.
아이콘을 준비하는 것이 번거롭기 때문에 문자로만 탭을 만들 수 있지 않을까 해서 실시했습니다.
아이콘만 사용하지 않으면 그림만 설정하면 되지만, 그것만 사용하면 작은 텍스트가 탭 표시줄 아래에 설정됩니다.
나는 문자를 확대해서 탭 표시줄의 한가운데에 놓고 싶다.또한 문자만 있으면 기본 탭 표시줄이 너무 길어집니다.그래서 높이도 줄이고 싶어요.

설치 방법


스위프트 2.1입니다.

문자의 위치 및 크기 변경


탭 표시줄의 각 UITObBarItem에는 문자의 위치와 크기가 있습니다.응용 프로그램에서 사용하는 탭 표시줄은 최대 하나이기 때문에 아래와 같이 수정할 수 있습니다.
첫 번째 행에서는 원하는 글꼴을 지정하고, 두 번째 행에서는 좌표를 변경합니다.
UITabBarItem.appearance().setTitleTextAttributes([NSFontAttributeName: UIFont(name: "Avenir-Medium", size: 14)!], forState: .Normal) // 好きなフォントを
UITabBarItem.appearance().titlePositionAdjustment = UIOffsetMake(0, -9)
이것은TabBarViewController의viewDidLoad 또는 AppDelegate의 응용 프로그램:d i d F inishLaunchingWithOptions의 설정이면 됩니다.

탭 표시줄 높이 변경


레이블 막대를 그릴 높이는 UITABar의 크기 TheatFits에 의해 결정되는 것 같습니다.따라서 오버라이드를 적당한 높이로 돌려주면 높이를 바꿀 수 있다.

class TabBar: UITabBar {

    override func sizeThatFits(size: CGSize) -> CGSize {
        var size = super.sizeThatFits(size)
        size.height = 40
        return size
    }

}

샘플 코드


다음 예는 적절한 storyboard에서 탭 표시줄을 가져오는 ViewController입니다.
class TabBar: UITabBar {

    override func sizeThatFits(size: CGSize) -> CGSize {
        var size = super.sizeThatFits(size)
        size.height = 40
        return size
    }

}
class TabBarViewController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

        addTabBarItems()
        layoutTabBarItems()
    }

    func addTabBarItems() {
        addChildViewControllerWithStoryboardName("Timeline")
        childViewControllers.last?.tabBarItem = UITabBarItem(title: "Timeline", image: nil, tag: 1)
        addChildViewControllerWithStoryboardName("MyPage")
        childViewControllers.last?.tabBarItem = UITabBarItem(title: "MyPage", image: nil, tag: 2)
    }

    func addChildViewControllerWithStoryboardName(storyboardName: String) {
        let storyboard = UIStoryboard(name: storyboardName, bundle: nil)
        let vc = storyboard.instantiateInitialViewController()        
        addChildViewController(vc!)
    }

    func layoutTabBarItems() {
        tabBar.translucent = false
        tabBar.barTintColor = UIColor.lightOrangeColor()
        tabBar.tintColor = UIColor.deepGrayColor()

        UITabBarItem.appearance().setTitleTextAttributes([NSFontAttributeName: UIFont(name: "Avenir-Medium", size: 14)!], forState: .Normal)
        UITabBarItem.appearance().titlePositionAdjustment = UIOffsetMake(0, -9)
    }

}

좋은 웹페이지 즐겨찾기