There's a special kind of
flexibleSpace, and this acts like a spring between other buttons, pushing them to one side. A flexible space will always expand to take up as much room as possible, splitting space evenly between other flexible spaces if they exist.
For example, if you add this button to a toolbar, it will sit on the left edge of the toolbar:
let refresh = UIBarButtonItem(barButtonSystemItem: .refresh, target: self, action: #selector(refreshTapped))
If you create and add a flexible space first, then that button will be pushed to the right edge as the flexible space expands to take up most of the toolbar. Here's how you create the flexible space:
let spacer = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
Sponsored You’re already busy updating your app for Swift 4.2 and iOS 12, so why not let Instabug help you find and fix bugs? Add just two lines of code to your project and receive comprehensive reports with all the feedback you need to ship a world-class app – click here to learn more!
Available from iOS 2.0 – see Hacking with Swift tutorial 4
Did this solution work for you? Please pass it on!
Other people are reading…
About the Swift Knowledge Base
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Swift on the server is here
Get ahead of the game and learn server-side Swift with my latest book – build real-world projects while you learn!