// // Copyright © 2016年 dahua. All rights reserved. // #import "UINavigationItem+LeChange.h" @implementation UINavigationItem (LeChange) - (void)setLc_leftBarButtonItems:(NSArray *)lc_leftBarButtonItems { NSMutableArray *leftItems = [NSMutableArray new]; for (UIBarButtonItem *item in lc_leftBarButtonItems) { //添加一个空的,调整左边距 UIBarButtonItem *spacer = [self spaceItemWithWidth:-5]; [leftItems addObject:spacer]; item.customView.contentMode = UIViewContentModeLeft; //居左 [leftItems addObject:item]; //[item.customView sizeToFit]; //会导致文字的长度变成系统默认的 //#if DEBUG // item.customView.backgroundColor = [UIColor greenColor]; //#endif } self.leftBarButtonItems = leftItems; } - (NSArray *) lc_leftBarButtonItems { return self.leftBarButtonItems; } - (void)setLc_rightBarButtonItems:(NSArray *)lc_rightBarButtonItems { NSMutableArray *rightItems = [NSMutableArray new]; for (UIBarButtonItem *item in lc_rightBarButtonItems) { //添加一个空的,调整右边距 UIBarButtonItem *spacer = [self spaceItemWithWidth:-5]; [rightItems addObject:spacer]; if ([item isKindOfClass:[UIButton class]]) { UIButton *button = (UIButton *)item; button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight; button.imageView.contentMode = UIViewContentModeRight; } [rightItems addObject:item]; item.customView.contentMode = UIViewContentModeRight; //居右 //[item.customView sizeToFit]; //会导致文字的长度变成系统默认的 //#if DEBUG // item.customView.backgroundColor = [UIColor redColor]; //#endif } self.rightBarButtonItems = rightItems; } - (NSArray *) lc_rightBarButtonItems { return self.rightBarButtonItems; } - (void)setLc_leftBarButtons:(NSArray *)lc_leftBarButton { self.leftBarButtonItems = [self barItemsFromButtonViewArray:lc_leftBarButton]; } - (NSArray *)lc_leftBarButtons { return [self buttonsFromBarItems:self.lc_leftBarButtonItems]; } - (void)setLc_rightBarButtons:(NSArray *)lc_rightBarButton { self.rightBarButtonItems = [self barItemsFromButtonViewArray:lc_rightBarButton]; } - (NSArray *)lc_rightBarButtons { return [self buttonsFromBarItems:self.lc_rightBarButtonItems]; } #pragma mark - custom methods - (NSArray *)barItemsFromButtonViewArray:(NSArray *)buttonArray { NSMutableArray *batItems = [NSMutableArray new]; for (UIView *oneView in buttonArray) { //添加一个空的,调整左边距 UIBarButtonItem *spacer = [self spaceItemWithWidth:-5]; [batItems addObject:spacer]; [oneView sizeToFit]; UIBarButtonItem *barItem = [[UIBarButtonItem alloc]initWithCustomView:oneView]; #if DEBUG //oneView.backgroundColor = [UIColor greenColor]; #endif [batItems addObject:barItem]; } return batItems; } - (NSArray *)buttonsFromBarItems:(NSArray*)barItems { NSMutableArray *barButtons = [NSMutableArray new]; for (UIBarButtonItem *item in barItems) { UIView *oneView = item.customView; if (oneView) { [barButtons addObject:oneView]; } } return barButtons; } - (UIBarButtonItem *)spaceItemWithWidth:(CGFloat)width { UIBarButtonItem *spacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; spacer.width = width; return spacer; } @end