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

Posted

技术标签:

【中文标题】Cosmic Mind - 实现 TabsController 时如何调整视图大小【英文标题】:Cosmic Mind - How to resize view when TabsController is implemented 【发布时间】:2018-05-03 15:02:51 【问题描述】:

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

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

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

谢谢!

【问题讨论】:

当你说标题时,你是指标签的标题,还是标签上方的标题? 【参考方案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 

【讨论】:

以上是关于Cosmic Mind - 实现 TabsController 时如何调整视图大小的主要内容,如果未能解决你的问题,请参考以下文章

Mind+实现自定义用户库——TM1637数码管

Mind+实现添加用户自定义库

Mind+实现添加用户自定义库

Mind+实现添加用户自定义库

快速学习COSMIC之一:COSMIC方法的简单案例

Mind+实现人脸识别与测温(图形化编程)