UITabBar屏幕顶部

时间:2015-02-09 09:53:16

标签: ios swift layout uitabbarcontroller

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

我尝试过,我做过,这是代码:

  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;
  }

1 个答案:

答案 0 :(得分:2)

UITabBar

中定义viewDidLoad
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)
    }
}