【问题标题】:Cosmic Mind - How to resize view when TabsController is implementedCosmic Mind - 实现 TabsController 时如何调整视图大小
【发布时间】:2025-12-01 23:25:01
【问题描述】:

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

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

这是我的标签发生的事情:

谢谢!

【问题讨论】:

  • 当你说标题时,你是指标签的标题,还是标签上方的标题?

标签: ios swift xcode cosmicmind


【解决方案1】:

在您的代码中,您实际上没有在TabsController 上设置视图,其中可能存在标题。您需要包装 TabsController 才能完成此操作。一种方法是使用ToolbarController

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

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

【讨论】:

    【解决方案2】:

    如果您只需要 20 像素来移动状态栏下方的选项卡,您可以使用 StatusBarControllerdisplayStyle = .partial。这就是我的解决方法。

    let tabsController = TabsController(viewControllers: [
            MyViewController1(),
            MyViewController2()
        ])
    
    let statusBarController = StatusBarController(rootViewController: tabsController)
    statusBarController .displayStyle = .partial
    // add statusBarController to hierarchy 
    

    【讨论】: