我有一个导航栏,其中有3个左栏按钮(图标)和1个右栏按钮(返回)。
右键(BACK)按钮一直保持在我希望的最右侧。
每个图像的左3个左键按钮均未对齐:
我希望它们要么全部留着,要么在剩余空间中等距分布。
我将每个图标的宽度设置为50px,每侧的插图都设置为10px。但是,似乎第2个和第3个按钮(文档和星号图标)遵循这些规则,但是第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
}
}