Xcode导航栏按钮对齐

时间:2020-11-01 20:15:48

标签: swift xcode navbar xcode-storyboard

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

右键(BACK)按钮一直保持在我希望的最右侧。

每个图像的左3个左键按钮均未对齐:

Nav bar

我希望它们要么全部留着,要么在剩余空间中等距分布。

我将每个图标的宽度设置为50px,每侧的插图都设置为10px。但是,似乎第2个和第3个按钮(文档和星号图标)遵循这些规则,但是第1个(链接图标)则只占用了所有剩余空间。

环顾四周,但看不到设置对齐方式/间距的方法。没有帮助,不胜感激

1 个答案:

答案 0 :(得分:-1)

从现在开始,请确保在提出问题时张贴您的代码,因为如果不看就很难理解问题。

这里是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
        }
    }