Cosmic Mind - 如何在实现TabsController时调整视图大小

时间:2018-05-03 15:02:52

标签: ios swift xcode cosmicmind

我在向此屏幕插入标题时遇到问题。 我该如何调整此视图的大小?

这是我实现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
    }

}

这里我选择了一个代码(选项两个代码是相同的):

    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 :(得分:0)

在您的代码中,您无法在TabsController上实际设置视图的任何地方,标题可能存在。您需要包装TabsController才能完成此任务。一种方法是使用ToolbarController

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

这是解决问题的一种方法。

答案 1 :(得分:0)

如果只需要20个像素即可移动状态栏下方的标签,则可以StatusBarController使用displayStyle = .partial。这就是我的解决方法。

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

let statusBarController = StatusBarController(rootViewController: tabsController)
statusBarController .displayStyle = .partial
// add statusBarController to hierarchy