Xcode 导航栏按钮对齐
Posted
技术标签:
【中文标题】Xcode 导航栏按钮对齐【英文标题】:Xcode Nav Bar Button Alignment 【发布时间】:2020-11-01 20:15:48 【问题描述】:我有一个带有 3 个左栏按钮(图标)和 1 个右栏按钮(BACK)的导航栏。
如我所愿,右栏(BACK)按钮始终保持在最右侧。
3 个左栏按钮按图像不均匀对齐:
我希望它们要么:全部留在左边,要么在剩余空间中等距。
我已将每个图标的宽度设置为 50 像素,两侧插入 10 像素。然而,第二个和第三个按钮(文档和星形图标)似乎遵循这些规则,但第一个(链接图标)则只占用了所有剩余空间。
环顾四周,但看不到设置对齐/间距的方法。非常感谢您的帮助
【问题讨论】:
【参考方案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
【讨论】:
嗨,Aisultan,感谢您的回复。请注意,我没有包含所有通过情节提要完成的代码,因此没有代码。我通过情节提要添加了宽度和插入,但没有任何效果。不知道通过代码执行此操作会有什么不同,但我会试一试。以上是关于Xcode 导航栏按钮对齐的主要内容,如果未能解决你的问题,请参考以下文章