代码之家  ›  专栏  ›  技术社区  ›  Nicholas Farmer

Xcode导航栏按钮对齐

  •  0
  • Nicholas Farmer  · 技术社区  · 4 年前

    我有一个导航栏,有3个左栏按钮(图标)和1个右栏按钮(返回)。

    如我所愿,右栏(BACK)按钮始终保持在最右侧。

    如图所示,左侧的3个条形按钮排列不均:

    Nav bar

    我希望他们要么:都留在左边,要么在剩下的空间里等距分布。

    我已经将每个图标的宽度设置为50px,两侧插入10px。然而,第二和第三个按钮(文档和星形图标)似乎遵循这些规则,但第一个按钮(链接图标)只占用了所有剩余空间。

    环顾四周,但看不到设置对齐/间距的方法。不,非常感谢你的帮助

    0 回复  |  直到 4 年前
        1
  •  -1
  •   Aisultan Askarov    4 年前

    从现在开始,请务必在提问时发布您的代码,因为如果不看到它,很难理解问题。

    顺便说一句,这是TabBarController类的代码,它也有contentInsets 它在我的每个应用程序中都能完美运行

    class TabBarController: UITabBarController {
        
             override func viewDidLoad() {
                    super.viewDidLoad()
                   
                    let firstVeiwController = createNavController(vc: ExercisesLobby(), selected: UIImage(named: "Note")!, unselected: UIImage(named: "NoteUnselected")!)
                    let secondViewController = createNavController(vc: TrainingPlansViewController(), selected: UIImage(named: "Exercises")!, unselected: UIImage(named: "ExercisesUnselected")!)
                    let thirdViewController = createNavController(vc: MapViewController(), selected: UIImage(named: "Map")!, unselected: UIImage(named: "MapUnselected")!)
                
                    viewControllers = [firstVeiwController, secondViewController, thirdViewController]
                    tabBar.barStyle = .black
                    tabBar.barTintColor = UIColor.white
                    tabBar.tintColor = UIColor.black
                    tabBar.unselectedItemTintColor = UIColor.lightGray.withAlphaComponent(0.9)
                    additionalSafeAreaInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
                
                    guard let items = tabBar.items else { return }
                    
                    for item in items {
                        item.imageInsets = UIEdgeInsets(top: 2, left: 0, bottom: -22, right: 0)
                    }
                
                selectedViewController = secondViewController
                    
                }
                
                //MARK: - Functions
                
        
               
            }
    
        extension UITabBarController {
            func createNavController(vc: UIViewController, selected: UIImage, unselected: UIImage) -> UINavigationController {
                
                let viewController = vc
                let navController = UINavigationController(rootViewController: viewController)
                navController.tabBarItem.image = unselected
                navController.tabBarItem.selectedImage = selected
                
                return navController
            }
        }