Переместить панель вкладок в верхнюю часть экрана - PullRequest
3 голосов
/ 13 июля 2011

У меня есть контроллер панели вкладок, который, как мы знаем, отображает панель вкладок в нижней части экрана. Я ищу способ переместить его наверх. Я не думаю, что могу использовать простой UITabBar для этого, так как мне нужно вложить под него UINavigationControllers.

Есть ли способ переместить панель вкладок в UITabBarController в верхнюю часть экрана?

Ответы [ 4 ]

8 голосов
/ 06 мая 2015

Попробуйте этот код в методах "viewDidLayoutSubviews" вашего UITabBarController

Swift 2.X

  self.tabbar.frame = CGRectMake(0,0,320,50) //example for iPhone 5

Swift 3.X

  self.tabbar.frame = CGRect(0,0,320,50) //example for iPhone 5

Swift 4.X

  self.tabbar.frame = CGRect( x: 0, y: 0, width: 320, height: 50)  //example for iPhone 5
4 голосов
/ 29 ноября 2014

(по-быстрому)

В файле TabBarViewController.swift (каждый назвал этот файл так, как хочет):

  • Сначала: создайте IBOutlet панели вкладок, а затем подключите его к соответствующей панели вкладок в раскадровке или в файле пера.

    @IBOutlet var profileTabBar : UITabBar!
    
  • Второе: добавьте этот код в функцию viewDidLoad () , чтобы расположить панель вкладок там, где вы хотите (в этом случае я добавляю панель вкладок de под контроллером навигации). Чтобы изменить положение, измените x и y из CGRectMake инициализатора.

    // [Maybe you don't have a navigation controller] yNavBar indicates the height of the navigation bar. 
    var yNavBar = self.navigationController?.navigationBar.frame.size.height
    // yStatusBar indicates the height of the status bar 
    var yStatusBar = UIApplication.sharedApplication().statusBarFrame.size.height
    // Set the size and the position in the screen of the tab bar
    profileTabBar.frame = CGRectMake(0, yNavBar! + yStatusBar + profileTabBar.frame.size.height, profileTabBar.frame.size.width, profileTabBar.frame.size.height)
    
0 голосов
/ 31 октября 2016

Я использую Tab Bar Controller, тогда я просто изменяю позицию TabBar в Tab Bar Controller в ViewDidLoad()

import UIKit

class TabbarViewController: UITabBarController {

override func viewDidLoad() {
    super.viewDidLoad()
    self.tabBar.frame = CGRect(origin: CGPoint(x: 0,y :64), size: CGSize(width: 400, height: 50))

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
}

Вот краткий экран, прикрепленный к требуемому результату ... Панель вкладок вверху в представлении панели вкладок. Контроллер

Примечание: В быстром 3 вы можете изменить синтаксис на swift 2. * самостоятельно.

0 голосов
/ 13 июля 2011

Я так не думаю.Единственное, о чем я могу думать, это использовать UITabBar вместо UITabbarController ...

В любом случае, это может быть лучшим вариантом, если вы планируете вложить UINavigationControllers для каждого представления, загруженного для разных вкладок.

...