【问题标题】:UITabBar top of the screenUITabBar 屏幕顶部
【发布时间】:2015-04-09 00:36:32
【问题描述】:

我需要将标签栏放在屏幕顶部。

我试过了,我做到了,这是代码:

  override func viewDidLoad() {
        self.tabBar.frame = CGRectMake(0, 90, self.view.bounds.size.width, self.view.bounds.size.height);
        self.tabBar.autoresizingMask = UIViewAutoresizing.FlexibleWidth
  }

问题是当我转动设备的屏幕时。

我应该重新生成布局并以这种方式进行更改:

self.tabBar.frame = CGRectMake(0, 80, self.view.bounds.size.width, self.view.bounds.size.height);

如何在每次转动屏幕时更改此设置?

编辑:

新代码:

  override func viewDidLayoutSubviews()
  {
        //check tabBar not null
        if (self.tabBar != nil)
        {
            //make changes in frame here according to orientation if any
            self.tabBar.frame = CGRect(x: 00, y: 20, width:self.view.bounds.size.width, height: 49)
        }
  }
  override func viewDidLoad() 
  {
     //Make changes in frame according to your requirement
    self.tabBar.frame = CGRectMake(0, 20, self.view.bounds.size.width,49);
    //resizing here
    self.tabBar.autoresizingMask = UIViewAutoresizing.FlexibleTopMargin;UIViewAutoresizing.FlexibleLeftMargin;UIViewAutoresizing.FlexibleWidth;UIViewAutoresizing.FlexibleRightMargin;
  }

【问题讨论】:

    标签: ios swift layout uitabbarcontroller


    【解决方案1】:

    viewDidLoad 中定义UITabBar

    override func viewDidLoad() 
    {
        //Make changes in frame according to your requirement
        self.tabBar.frame = CGRectMake(0, 20, self.view.bounds.size.width,49);
        //resizing here
        self.tabBar.autoresizingMask = UIViewAutoresizing.FlexibleTopMargin;UIViewAutoresizing.FlexibleLeftMargin;UIViewAutoresizing.FlexibleWidth;UIViewAutoresizing.FlexibleRightMargin;
    }
    

    添加下面的方法viewDidLayoutSubviews

    override func viewDidLayoutSubviews()
    {
        //check tabBar not null
        if (self.tabBar != nil)
        {
            //make changes in frame here according to orientation if any
            self.tabBar.frame = CGRect(x: 00, y: 20, width:self.view.bounds.size.width, height: 49)
        }
    }
    

    【讨论】:

    • 当我尝试编写函数时返回此错误:“UITabBar 不是 NSString 的子类型”
    • 我做了一些更改,即只为tabBar 添加了self。它在 viewDidLayoutSubviews 方法中显示此错误。
    • 我用新代码编辑了问题,但它给了我同样的错误
    • 问题出在您的身边,然后当您检查某个对象是否为 null 或不是这样时,即 if(anyObject) 位于 Objective-c 而不是 swift 中。像这样检查 if(anyObject != nil) 这是在 swift
    • 嗯,我什么也没找到。但是,我的回复很有帮助。谢谢
    猜你喜欢
    • 1970-01-01
    • 2013-01-10
    • 2010-11-16
    • 2011-12-25
    • 2017-05-20
    • 1970-01-01
    • 2017-07-12
    • 2013-04-06
    相关资源
    最近更新 更多