Cosmic Mind - Как изменить размер представления, когда реализован TabsController - PullRequest
0 голосов
/ 03 мая 2018

У меня проблема с вставкой заголовка на этот экран. Как я могу изменить размер этого представления?

Вот мой код, в котором реализован TabsController:

    class DashboardViewController: TabsController {

    let screenSize = UIScreen.main.bounds

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func prepare() {
        super.prepare()

        tabBar.lineColor = UIColor.CustomColor.blue
        tabBar.setTabItemsColor(UIColor.CustomColor.grey, for: .normal)
        tabBar.setTabItemsColor(UIColor.CustomColor.blue, for: .selected)

        tabBarAlignment = .top
        tabBar.tabBarStyle = .auto
        tabBar.dividerColor = nil
        tabBar.lineHeight = 2.0
        tabBar.lineAlignment = .bottom
        tabBar.backgroundColor = .white
    }

}

Вот мой код варианта 1 (и код варианта 2 одинаков):

    class TeamProjectViewController: UITableViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        prepareTabItem()
        setupTableView()
    }

    fileprivate func setupTableView() {
        tableView.backgroundColor = .white
        tableView.allowsSelection = false
        tableView.separatorColor = UIColor.CustomColor.lightGrey
        tableView.register(UINib(nibName: "ProjectTableViewCell", bundle: nil), forCellReuseIdentifier: "cell")
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 10
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! ProjectTableViewCell
        return cell
    }

    override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 150
    }

}

extension TeamProjectViewController {
    fileprivate func prepareTabItem() {
        tabItem.title = "Option 1"
    }
}

А вот что происходит с моими вкладками:

The options are way too the top of the screen:

Спасибо!

Ответы [ 2 ]

0 голосов
/ 02 июня 2018

Если вы хотите, чтобы всего 20 пикселей перемещали вкладки под строкой состояния, вы можете использовать StatusBarController с displayStyle = .partial. Вот как я могу обойти.

let tabsController = TabsController(viewControllers: [
        MyViewController1(),
        MyViewController2()
    ])

let statusBarController = StatusBarController(rootViewController: tabsController)
statusBarController .displayStyle = .partial
// add statusBarController to hierarchy 
0 голосов
/ 11 мая 2018

В вашем коде у вас нет места, где вы фактически устанавливаете представление над TabsController, где мог бы существовать заголовок. Вы должны были бы обернуть TabsController для достижения этой цели. Одним из способов является использование ToolbarController:

let toolbarController = ToolbarController(rootViewController: myTabsController)
toolbarController.toolbar.title = "my title"

Это один из способов решения вашей проблемы.

...