在AppDelegate设置一个全局属性,iCurrentIsImageCame默认设置为NO,用此方法更改位置会修改系统相册页面取消按钮位置,只需在进入此页面时讲iCurrentIsImageCame设置为YES,就可解决取消按钮位置问题。
@implementation UINavigationItem (MyItem)
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_7_0
- (void)setLeftBarButtonItem:(UIBarButtonItem *)_leftBarButtonItem{
UIBarButtonItem *spaceButtonItem = [[UIBarButtonItemalloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpacetarget:nilaction:nil];
AppDelegate* app = (AppDelegate*)[UIApplicationsharedApplication].delegate;
if (app.iCurrentIsImageCame ==NO) {
spaceButtonItem.width = -15;
}
if (_leftBarButtonItem){
[selfsetLeftBarButtonItems:@[spaceButtonItem, _leftBarButtonItem]];
} else {
[selfsetLeftBarButtonItems:@[spaceButtonItem]];
}
}
- (void)setRightBarButtonItem:(UIBarButtonItem *)_rightBarButtonItem{
UIBarButtonItem *spaceButtonItem = [[UIBarButtonItemalloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpacetarget:nilaction:nil];
AppDelegate* app = (AppDelegate*)[UIApplicationsharedApplication].delegate;
if (app.iCurrentIsImageCame ==NO)
{
spaceButtonItem.width = -6;
}
if (_rightBarButtonItem) {
[selfsetRightBarButtonItems:@[spaceButtonItem, _rightBarButtonItem]animated:NO];
} else {
[selfsetRightBarButtonItems:@[spaceButtonItem]animated:NO];
}
}
-(void)setRightBarButtonItems:(NSArray *)rightBarButtonItems
{
UIBarButtonItem *spaceButtonItem = [[UIBarButtonItemalloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpacetarget:nilaction:nil];
AppDelegate* app = (AppDelegate*)[UIApplicationsharedApplication].delegate;
if (app.iCurrentIsImageCame ==NO)
{
spaceButtonItem.width = -6;
}
if (rightBarButtonItems) {
NSMutableArray * itemArr = [NSMutableArrayarrayWithArray:rightBarButtonItems];
[itemArr insertObject:spaceButtonItematIndex:0];
[selfsetRightBarButtonItems:itemArr animated:NO];
} else {
[selfsetRightBarButtonItems:@[spaceButtonItem]animated:NO];
}
}
#endif