Closed 835932621 closed 5 years ago
我这边没有低版本的测试机,没法测试。
原因是你在 UINavigationItem
的分类中判断系统低于 iOS11 就添加一个宽度为 -20 的 fixedSpaceItem
,那里的判断条件应该是 if (GKDeviceVersion >= 11.0 || GKDeviceVersion <= 10.0)
设置 navigationItem.leftBarButtonItems
和 navigationItem.rightBarButtonItems
的方法也应该更新下
- (void)gk_setLeftBarButtonItems:(NSArray<UIBarButtonItem *> *)leftBarButtonItems {
if (leftBarButtonItems.count && (GKDeviceVersion > 10.0 && GKDeviceVersion < 12.0)) {
NSMutableArray *items = [NSMutableArray arrayWithObject:[self fixedSpaceWithWidth:GKConfigure.gk_navItemLeftSpace - 20]]; // 修复iOS11的偏移
[items addObjectsFromArray:leftBarButtonItems];
[self gk_setLeftBarButtonItems:items];
}else {
[self gk_setLeftBarButtonItems:leftBarButtonItems];
}
}
- (void)gk_setRightBarButtonItems:(NSArray<UIBarButtonItem *> *)rightBarButtonItems {
if (rightBarButtonItems.count && (GKDeviceVersion > 10.0 && GKDeviceVersion < 12.0)) {
NSMutableArray *items = [NSMutableArray arrayWithObject:[self fixedSpaceWithWidth:GKConfigure.gk_navItemRightSpace - 20]]; // 可修正iOS11的偏移
[items addObjectsFromArray:rightBarButtonItems];
[self gk_setRightBarButtonItems:items];
}else {
[self gk_setLeftBarButtonItems:rightBarButtonItems];
}
}
其实作者想解决的那个问应该只有在 iOS11 才有,低于或高于 iOS11 的版本都没有,所以烦请作者 update 下代码!
应该是以前版本代码的问题,最新版应该已经修复了该问题。
没有吧,我就是用的最新的代码,你自己也可以试一下,用iOS10 的模拟器,在导航栏上添加一个 rightBarButtonItem
试试看。
最新版2.1.6,分别在iOS9.3,10.3.1,11.3,12.1上都测试过了,都没问题。
另外我添加了测试的demo,可以去看一下
gk_navRightBarButtonItems 这个方法 设置后 模拟器上右边可以展示2个按钮 但是在真机上的时候 展示不出来 我的机型是10.3.3 另外用9.3的测试 也展示不出来