Stephany
Stephany

Reputation: 1004

UITabBar top of the screen

I need to put my tab bar at the top of the screen.

I've tried and I did, this is the code:

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

the problem is I when I turn the screen of my device.

I should regenerate the layout and change in this way:

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

How can I change this every time you turn the screen?

EDIT:

New Code:

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

Upvotes: 0

Views: 1149

Answers (1)

Paresh Navadiya
Paresh Navadiya

Reputation: 38239

Define UITabBar in 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;
}

Add below method 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)
    }
}

Upvotes: 2

Related Questions