fix navigation leftBarButton and rightBarButton offset bug below iOS 11

FFIB лет %!s(int64=6): %!d(string=назад)
Родитель
Сommit
32804d6b53

+ 8 - 8
PaiAi/Paiai.xcodeproj/project.pbxproj

@@ -92,7 +92,6 @@
92 92
 		0513100021CA1B39004EF1BE /* CLLocationExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0543272821C68C1900C6388D /* CLLocationExt.swift */; };
93 93
 		0513100121CA1B39004EF1BE /* CGPointExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0543272921C68C1900C6388D /* CGPointExt.swift */; };
94 94
 		0513100221CA1B39004EF1BE /* CGSizeExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0543272A21C68C1900C6388D /* CGSizeExt.swift */; };
95
-		0513100721CA1B39004EF1BE /* UIViewController+UIBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6CCC0581E793DD0004BCC9D /* UIViewController+UIBarButtonItem.swift */; };
96 95
 		0513100A21CA1B39004EF1BE /* UIBarButtonItemExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0543272E21C68C1900C6388D /* UIBarButtonItemExt.swift */; };
97 96
 		0513100B21CA1B39004EF1BE /* UIColorExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0543272F21C68C1900C6388D /* UIColorExt.swift */; };
98 97
 		0513100F21CA1B39004EF1BE /* UIViewExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0543273321C68C1900C6388D /* UIViewExt.swift */; };
@@ -198,6 +197,7 @@
198 197
 		0572B2C921E30D8000EAD2A2 /* PhotoCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 054863671FA326CB00A39DA0 /* PhotoCell.xib */; };
199 198
 		057317A221F5C6A0009B2FCE /* BottomDefaultItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 057317A121F5C6A0009B2FCE /* BottomDefaultItem.swift */; };
200 199
 		057317A421F5C6C0009B2FCE /* BottomCancelItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 057317A321F5C6C0009B2FCE /* BottomCancelItem.swift */; };
200
+		057550BC22754ECB007A265D /* UINavigationItem+UIBarButttonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 057550BB22754ECB007A265D /* UINavigationItem+UIBarButttonItem.swift */; };
201 201
 		057CA9BA21DC836B00FB7D03 /* GroupPhotoRemoteAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 057CA9B921DC836B00FB7D03 /* GroupPhotoRemoteAPI.swift */; };
202 202
 		057CA9BC21DC855700FB7D03 /* UploadResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 057CA9BB21DC855700FB7D03 /* UploadResource.swift */; };
203 203
 		057CA9C621DCA2C900FB7D03 /* PhotoRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 057CA9C521DCA2C900FB7D03 /* PhotoRepository.swift */; };
@@ -208,7 +208,7 @@
208 208
 		0584FD7721F9C8A300FA1E3E /* PresentAnimatorDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0584FD7621F9C8A300FA1E3E /* PresentAnimatorDelegate.swift */; };
209 209
 		0584FD7C21FABC1400FA1E3E /* PresentExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0584FD7B21FABC1400FA1E3E /* PresentExtension.swift */; };
210 210
 		0584FD7E21FABD9D00FA1E3E /* PresentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0584FD7D21FABD9D00FA1E3E /* PresentViewController.swift */; };
211
-		058C33EE2272F7BE00A435E9 /* UINavigationController + NavigationBack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 058C33ED2272F7BE00A435E9 /* UINavigationController + NavigationBack.swift */; };
211
+		058C33EE2272F7BE00A435E9 /* UINavigationController+NavigationBack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 058C33ED2272F7BE00A435E9 /* UINavigationController+NavigationBack.swift */; };
212 212
 		058D0C9D2249C94F006CA488 /* CoordinatorKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 058D0C9C2249C94F006CA488 /* CoordinatorKey.swift */; };
213 213
 		058D0CA02249FCF6006CA488 /* Toast.swift in Sources */ = {isa = PBXBuildFile; fileRef = 053E126A21F5696E00A64893 /* Toast.swift */; };
214 214
 		058D0CA12249FCF6006CA488 /* ToastView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0521145321F083F20047C55A /* ToastView.swift */; };
@@ -451,6 +451,7 @@
451 451
 		0572B2C021E2FB3E00EAD2A2 /* WXApi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXApi.h; sourceTree = "<group>"; };
452 452
 		057317A121F5C6A0009B2FCE /* BottomDefaultItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BottomDefaultItem.swift; sourceTree = "<group>"; };
453 453
 		057317A321F5C6C0009B2FCE /* BottomCancelItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BottomCancelItem.swift; sourceTree = "<group>"; };
454
+		057550BB22754ECB007A265D /* UINavigationItem+UIBarButttonItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UINavigationItem+UIBarButttonItem.swift"; sourceTree = "<group>"; };
454 455
 		0578947E20D264B300A9F773 /* MessageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageViewController.swift; sourceTree = "<group>"; };
455 456
 		057CA9B921DC836B00FB7D03 /* GroupPhotoRemoteAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupPhotoRemoteAPI.swift; sourceTree = "<group>"; };
456 457
 		057CA9BB21DC855700FB7D03 /* UploadResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadResource.swift; sourceTree = "<group>"; };
@@ -462,7 +463,7 @@
462 463
 		0584FD7621F9C8A300FA1E3E /* PresentAnimatorDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PresentAnimatorDelegate.swift; sourceTree = "<group>"; };
463 464
 		0584FD7B21FABC1400FA1E3E /* PresentExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PresentExtension.swift; sourceTree = "<group>"; };
464 465
 		0584FD7D21FABD9D00FA1E3E /* PresentViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PresentViewController.swift; sourceTree = "<group>"; };
465
-		058C33ED2272F7BE00A435E9 /* UINavigationController + NavigationBack.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UINavigationController + NavigationBack.swift"; sourceTree = "<group>"; };
466
+		058C33ED2272F7BE00A435E9 /* UINavigationController+NavigationBack.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UINavigationController+NavigationBack.swift"; sourceTree = "<group>"; };
466 467
 		058D0C9C2249C94F006CA488 /* CoordinatorKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoordinatorKey.swift; sourceTree = "<group>"; };
467 468
 		0594845721B528FE00074EFC /* Interfaces.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Interfaces.swift; sourceTree = "<group>"; };
468 469
 		059AA5D921BA1A2000485188 /* MessageCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageCoordinator.swift; sourceTree = "<group>"; };
@@ -555,7 +556,6 @@
555 556
 		A69FFB8F1E7018CC0006FEE0 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Main.storyboard; sourceTree = "<group>"; };
556 557
 		A69FFB911E7018CC0006FEE0 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Message.storyboard; sourceTree = "<group>"; };
557 558
 		A69FFB931E7018CC0006FEE0 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Mine.storyboard; sourceTree = "<group>"; };
558
-		A6CCC0581E793DD0004BCC9D /* UIViewController+UIBarButtonItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIViewController+UIBarButtonItem.swift"; sourceTree = "<group>"; };
559 559
 /* End PBXFileReference section */
560 560
 
561 561
 /* Begin PBXFrameworksBuildPhase section */
@@ -940,8 +940,8 @@
940 940
 			children = (
941 941
 				0513105F21CA1E53004EF1BE /* UIStoryboardExt.swift */,
942 942
 				05C8D21A21ED9A020001E847 /* UIViewController+Navigation.swift */,
943
-				A6CCC0581E793DD0004BCC9D /* UIViewController+UIBarButtonItem.swift */,
944 943
 				0543272E21C68C1900C6388D /* UIBarButtonItemExt.swift */,
944
+				057550BB22754ECB007A265D /* UINavigationItem+UIBarButttonItem.swift */,
945 945
 				0543272F21C68C1900C6388D /* UIColorExt.swift */,
946 946
 				0543273321C68C1900C6388D /* UIViewExt.swift */,
947 947
 				0543273421C68C1900C6388D /* UIViewControllerExt.swift */,
@@ -1048,7 +1048,7 @@
1048 1048
 			isa = PBXGroup;
1049 1049
 			children = (
1050 1050
 				0500C26421E8644E009A7013 /* NavigationBackItemDelegate.swift */,
1051
-				058C33ED2272F7BE00A435E9 /* UINavigationController + NavigationBack.swift */,
1051
+				058C33ED2272F7BE00A435E9 /* UINavigationController+NavigationBack.swift */,
1052 1052
 			);
1053 1053
 			path = NavigationBack;
1054 1054
 			sourceTree = "<group>";
@@ -1614,12 +1614,11 @@
1614 1614
 				0584FD7521F9C70D00FA1E3E /* SideAnimator.swift in Sources */,
1615 1615
 				0584FD7721F9C8A300FA1E3E /* PresentAnimatorDelegate.swift in Sources */,
1616 1616
 				059B589F21F7103100FA64C2 /* AlertItem.swift in Sources */,
1617
-				058C33EE2272F7BE00A435E9 /* UINavigationController + NavigationBack.swift in Sources */,
1617
+				058C33EE2272F7BE00A435E9 /* UINavigationController+NavigationBack.swift in Sources */,
1618 1618
 				059B58A621F7235D00FA64C2 /* AlertAction.swift in Sources */,
1619 1619
 				0513109821CA3915004EF1BE /* QRCodeScanResult.swift in Sources */,
1620 1620
 				0513100221CA1B39004EF1BE /* CGSizeExt.swift in Sources */,
1621 1621
 				0513109A21CA3915004EF1BE /* QRCodeScanView.swift in Sources */,
1622
-				0513100721CA1B39004EF1BE /* UIViewController+UIBarButtonItem.swift in Sources */,
1623 1622
 				05D3A3C621FF010900A29A20 /* WebViewController.swift in Sources */,
1624 1623
 				0500C26521E8644E009A7013 /* NavigationBackItemDelegate.swift in Sources */,
1625 1624
 				057317A221F5C6A0009B2FCE /* BottomDefaultItem.swift in Sources */,
@@ -1668,6 +1667,7 @@
1668 1667
 				05C5285821FE995F0090ECB5 /* GestureRecognizerDelegate.swift in Sources */,
1669 1668
 				05130F6321C94C7A004EF1BE /* SideViewController.swift in Sources */,
1670 1669
 				05130F6421C94C7A004EF1BE /* PageViewController.swift in Sources */,
1670
+				057550BC22754ECB007A265D /* UINavigationItem+UIBarButttonItem.swift in Sources */,
1671 1671
 			);
1672 1672
 			runOnlyForDeploymentPostprocessing = 0;
1673 1673
 		};

BIN
PaiAi/Paiai.xcodeproj/project.xcworkspace/xcuserdata/FFIB.xcuserdatad/UserInterfaceState.xcuserstate


+ 2 - 2
PaiAi/PaiaiUIKit/Reusable/Extension/UIKit/UIBarButtonItemExt.swift

@@ -32,7 +32,7 @@ public extension UIBarButtonItem {
32 32
     }
33 33
     
34 34
     convenience init(titles: [String], btnSpace: CGFloat, target: Any, actions: [Selector]) {
35
-        let barView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 44))
35
+        let barView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 36))
36 36
         var lastX: CGFloat = 0
37 37
         for (title, action) in zip(titles, actions) {
38 38
             let button = UIButton(type: .custom)
@@ -55,7 +55,7 @@ public extension UIBarButtonItem {
55 55
         
56 56
         for (target, (image, action)) in zip(targets, zip(images, actions)) {
57 57
             let button = UIButton(type: .custom)
58
-            button.frame = CGRect(x: lastX, y: 2, width: 36, height: 36)
58
+            button.frame = CGRect(x: lastX, y: 0, width: 36, height: 36)
59 59
             button.setImage(image, for: .normal)
60 60
             button.addTarget(target, action: action, for: .touchDown)
61 61
             barView.addSubview(button)

+ 29 - 0
PaiAi/PaiaiUIKit/Reusable/Extension/UIKit/UINavigationItem+UIBarButttonItem.swift

@@ -0,0 +1,29 @@
1
+//
2
+//  UINavigationItem+UIBarButttonItem.swift
3
+//  PaiaiUIKit
4
+//
5
+//  Created by ffib on 2019/4/28.
6
+//  Copyright © 2019 FFIB. All rights reserved.
7
+//
8
+
9
+import UIKit
10
+
11
+public extension UINavigationItem {
12
+    func setRightItem(_ item: UIBarButtonItem) {
13
+        if #available(iOS 11, *) {
14
+            rightBarButtonItem = item
15
+        } else {
16
+            let space = UIBarButtonItem(space: -15)
17
+            rightBarButtonItems = [space, item]
18
+        }
19
+    }
20
+    
21
+    func setLeftItem(_ item: UIBarButtonItem) {
22
+        if #available(iOS 11, *) {
23
+            leftBarButtonItem = item
24
+        } else {
25
+            let space = UIBarButtonItem(space: -15)
26
+            leftBarButtonItems = [space, item]
27
+        }
28
+    }
29
+}

+ 0 - 18
PaiAi/PaiaiUIKit/Reusable/Extension/UIKit/UIViewController+UIBarButtonItem.swift

@@ -1,18 +0,0 @@
1
-//
2
-//  UIViewController+UIBarButtonItem.swift
3
-//  PaiAi
4
-//
5
-//  Created by mac on 16/7/21.
6
-//  Copyright © 2016年 FFIB. All rights reserved.
7
-//
8
-
9
-import UIKit
10
-
11
-public extension UIViewController {
12
-    func setRightBarButtonItem(image: UIImage?, action: Selector) {
13
-        let button = UIButton(type: .custom)
14
-        button.setImage(image, for: .normal)
15
-        button.addTarget(self, action: action, for: .touchDown)
16
-        navigationItem.rightBarButtonItem = UIBarButtonItem(customView: button)
17
-    }
18
-}

+ 1 - 1
PaiAi/PaiaiUIKit/Reusable/UIKit/NavigationBack/UINavigationController + NavigationBack.swift

@@ -1,5 +1,5 @@
1 1
 //
2
-//  UINavigationController + NavigationBack.swift
2
+//  UINavigationController+NavigationBack.swift
3 3
 //  PaiaiUIKit
4 4
 //
5 5
 //  Created by ffib on 2019/4/26.

+ 1 - 5
PaiAi/Paiai_iOS/App/ContainerViewController.swift

@@ -72,11 +72,7 @@ public final class ContainerViewController: PageViewController {
72 72
     func constructNavigationViewHierarchy() {
73 73
         navigationContentView.addSubview(iconView)
74 74
         navigationContentView.addSubview(headerView)
75
-        let leftItem = UIBarButtonItem(customView: navigationContentView)
76
-        let spaceItem = UIBarButtonItem(barButtonSystemItem: .fixedSpace, target: nil, action: nil)
77
-        spaceItem.width = -15
78
-        
79
-        navigationItem.leftBarButtonItems = [spaceItem, leftItem]
75
+        navigationItem.setLeftItem(UIBarButtonItem(customView: navigationContentView))
80 76
     }
81 77
 }
82 78
 

+ 1 - 1
PaiAi/Paiai_iOS/App/Group/GroupDetail/GroupDetailViewController.swift

@@ -34,7 +34,7 @@ final class GroupDetailViewController: UIViewController {
34 34
     
35 35
     func setRightBarButtonItems() {
36 36
         let item = UIBarButtonItem(image: UIImage(named: "navigation-right"), target: self, action: #selector(quit))
37
-        navigationItem.rightBarButtonItem = item
37
+        navigationItem.setRightItem(item)
38 38
     }
39 39
     
40 40
     @objc func quit() {

+ 1 - 2
PaiAi/Paiai_iOS/App/Group/GroupViewController.swift

@@ -171,8 +171,7 @@ extension GroupViewController {
171 171
                                    targets: [self, viewModel!],
172 172
                                    actions: [#selector(GroupViewController.presentGroupQR),
173 173
                                              #selector(GroupViewModel.navigateToGroupDetail)])
174
-
175
-        navigationItem.rightBarButtonItem = item
174
+        navigationItem.setRightItem(item)
176 175
     }
177 176
     
178 177
     @objc func presentGroupQR() {

+ 2 - 1
PaiAi/Paiai_iOS/App/Message/MessageListViewController.swift

@@ -53,7 +53,8 @@ final class MessageListViewController: UIViewController {
53 53
     
54 54
     private func setupNavigationBar() {
55 55
         navigationItem.title = type.model.title
56
-        setRightBarButtonItem(image: UIImage.Navigation.right, action: #selector(clearMessage))
56
+        let rightItem = UIBarButtonItem(image: UIImage.Navigation.right, target: self, action: #selector(clearMessage))
57
+        navigationItem.setRightItem(rightItem)
57 58
     }
58 59
 
59 60
     private func setup() {