Fix bar button layout on iOS 9.

pull/2/head
Matthew Chen 6 years ago
parent 65ead451c0
commit 93cb0e3a10

@ -29,11 +29,24 @@ public extension UIViewController {
return return
} }
let spacing: CGFloat = 8
let stackView = UIStackView(arrangedSubviews: navigationBarItems) let stackView = UIStackView(arrangedSubviews: navigationBarItems)
stackView.axis = .horizontal stackView.axis = .horizontal
stackView.spacing = 8 stackView.spacing = spacing
stackView.alignment = .center stackView.alignment = .center
// Ensure layout works on older versions of iOS.
var stackSize = CGSize.zero
for item in navigationBarItems {
let itemSize = item.sizeThatFits(.zero)
stackSize.width += itemSize.width + spacing
stackSize.height = max(stackSize.height, itemSize.height)
}
if navigationBarItems.count > 0 {
stackSize.width -= spacing
}
stackView.frame = CGRect(origin: .zero, size: stackSize)
self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: stackView) self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: stackView)
} }
} }

Loading…
Cancel
Save