From 93cb0e3a102e84f43d290391d3837658a09aab18 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Fri, 1 Mar 2019 09:53:56 -0500 Subject: [PATCH] Fix bar button layout on iOS 9. --- .../OWSViewController+ImageEditor.swift | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/SignalMessaging/Views/ImageEditor/OWSViewController+ImageEditor.swift b/SignalMessaging/Views/ImageEditor/OWSViewController+ImageEditor.swift index 7c2e46b11..a7f50cf3e 100644 --- a/SignalMessaging/Views/ImageEditor/OWSViewController+ImageEditor.swift +++ b/SignalMessaging/Views/ImageEditor/OWSViewController+ImageEditor.swift @@ -29,11 +29,24 @@ public extension UIViewController { return } + let spacing: CGFloat = 8 let stackView = UIStackView(arrangedSubviews: navigationBarItems) stackView.axis = .horizontal - stackView.spacing = 8 + stackView.spacing = spacing 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) } }