// // YZMANavigationBar.m // YouHuiProject // // Created by 小花 on 2018/1/16. // Copyright © 2018年 kuxuan. All rights reserved. // #import "YZMANavigationBar.h" static const float NavigationBar_Title_Font_Size = 16.0f; static NSString *const Font_Default_Medium = @"PingFangSC-Medium"; @interface YZMANavigationBar(){ NSArray *_leftButtons; BOOL _isCustomTitleView; UIView* _titleView; UIView* _titleLabel; NSArray* _rightButtons; UIImageView *_bgImageV; UIView *_bottomLine; } @end @implementation YZMANavigationBar - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { _isCustomTitleView = NO; [self drawView]; } return self; } - (void)drawView { _bgImageV = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.width, self.height)]; // [_bgImageV setImage:bgImg]; _bgImageV.hidden = YES; [self addSubview:_bgImageV]; self.backgroundColor = [UIColor whiteColor]; _bottomLine = [[UIView alloc] initWithFrame:CGRectMake(0, self.frame.size.height-1, self.frame.size.width, 1)]; _bottomLine.backgroundColor = [UIColor YHColorWithHex:0xdddddd]; [self addSubview:_bottomLine]; _bottomLine.hidden = YES; } #pragma mark - Public Method - (void)setBackButtonWithTarget:(id)target selector:(SEL)selector { UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom]; button.bounds = CGRectMake(0, 0, 44.0f, 44.0f); button.frame = CGRectMake(0, KStatusBarHeight, 44.0f, 44.0f); // [button setBackgroundImage:[UIImage imageWithColor:[UIColor clearColor] frame:button.bounds] forState:UIControlStateNormal]; // [button setBackgroundImage:[UIImage imageWithColor:[UIColor clearColor] frame:button.bounds] forState:UIControlStateHighlighted]; // [button setBackgroundImage:[UIImage imageWithColor:[UIColor clearColor] frame:button.bounds] forState:UIControlStateDisabled]; [button setImage:[UIImage imageNamed:@"back" ] forState:UIControlStateNormal]; [button setImage:[UIImage imageNamed:@"back" ] forState:UIControlStateHighlighted]; [self setCustomButtonWithButton:button target:target selector:selector]; } - (void)setCustomButtonWithButton:(UIButton *)button target:(id)target selector:(SEL)selector { if (!button) { _leftButtons = nil; [self layoutElement]; return; } _leftButtons = @[button]; [button addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside]; [self setCustomLeftButtons:_leftButtons]; } - (void)setCustomLeftButtons:(NSArray*)buttons { for (UIButton *button in _leftButtons) { [button removeFromSuperview]; } _leftButtons = buttons; [self layoutElement]; } - (void)setCustomRightButtons:(NSArray *)buttons { for (UIButton* button in _rightButtons) { [button removeFromSuperview]; } _rightButtons = buttons; for (UIButton* button in _rightButtons) { [self addSubview:button]; } [self layoutElement]; } - (void)setNavTitle:(NSString *)title { [_titleView removeFromSuperview]; _titleView = nil; _titleView = [[UIView alloc] init]; _titleView.backgroundColor = [UIColor clearColor]; UILabel* label = [[UILabel alloc] init]; label.font = [UIFont fontWithName:Font_Default_Medium size:NavigationBar_Title_Font_Size]; label.textAlignment = NSTextAlignmentCenter; label.textColor = [UIColor YHColorWithHex:0x333333]; label.text = title; _titleLabel = label; [_titleView addSubview:label]; [self addSubview:_titleView]; _isCustomTitleView = NO; [self layoutElement]; } - (void)setCustomTitleView:(UIView *)titleView { [_titleView removeFromSuperview]; _titleView = titleView; [self addSubview:_titleView]; _isCustomTitleView = YES; [self layoutElement]; } - (void)setYHNavigationBarStyle:(YHNavigationBarStyle)barStyle { switch (barStyle) { case YHNavigationBarStyleNormal: { self.backgroundColor = [UIColor YHColorWithHex:0xffee00 alpha:1.0f]; _bgImageV.hidden = YES; } break; case YHNavigationBarStyleTransparent: { self.backgroundColor = [UIColor clearColor]; _bgImageV.hidden = NO; } break; case YHNavigationBarStyleWhite: { self.backgroundColor = [UIColor YHColorWithHex:0xffffff alpha:1.0f]; _bgImageV.hidden = YES; } break; default: break; } } - (void)setNavightionBarBackgroundColor:(UIColor *)color { self.backgroundColor = color; _bgImageV.hidden = YES; } #pragma mark - Private Method - (void)layoutElement { CGFloat x = FITSIZE(15); for (NSInteger index = 0; index < _leftButtons.count; index ++) { UIButton* button = _leftButtons[index]; button.frame = CGRectMake(x, KStatusBarHeight+22-button.height/2, button.width, button.height); [self addSubview:button]; x += button.width; } x = self.width; for (NSInteger index = _rightButtons.count - 1; index >= 0; index --) { UIButton* button = _rightButtons[index]; x = x - button.width - FITSIZE(15); button.frame = CGRectMake(x, KStatusBarHeight+22-button.height/2, button.width, button.height); } // 两边都有按钮 if (_leftButtons.count > 0 && _rightButtons.count > 0) { _titleView.frame = CGRectMake(_leftButtons[_leftButtons.count - 1].right, KStatusBarHeight, _rightButtons[0].x - _leftButtons[_leftButtons.count - 1].right, 44.0f); } // 只有左侧有按钮 else if (_leftButtons.count > 0 && (_rightButtons.count == 0 || !_rightButtons )) { _titleView.frame = CGRectMake(_leftButtons[_leftButtons.count - 1].right, KStatusBarHeight,self.width - _leftButtons[_leftButtons.count - 1].width * 2, 44.0f); } // 只有右侧有按钮 else if ((!_leftButtons || _leftButtons.count == 0) && _rightButtons.count > 0) { CGFloat leftWidth = self.width - _rightButtons[0].x; _titleView.frame = CGRectMake(leftWidth, KStatusBarHeight, self.width - leftWidth * 2, 44.0f); } // 两边都没有按钮 else { _titleView.frame = CGRectMake(0, KStatusBarHeight, self.width, 44.0f); } if (!_isCustomTitleView) { CGFloat titleViewDistanceFromLeft = _titleView.x; CGFloat titleViewDistanceFromRight = self.width - _titleView.right; CGFloat titleLabelShouldWidth = 0; if (titleViewDistanceFromLeft > titleViewDistanceFromRight) { titleLabelShouldWidth = (self.width / 2.0f - titleViewDistanceFromLeft) * 2; } else { titleLabelShouldWidth = (self.width / 2.0f - titleViewDistanceFromRight) * 2; } _titleLabel.width = titleLabelShouldWidth; _titleLabel.x = 0; _titleLabel.y = 0; CGFloat titleLabelShouldXOnSelf = (self.width - titleLabelShouldWidth) / 2.0f; CGFloat titleLabelX = [_titleLabel convertRect:_titleLabel.bounds toView:self].origin.x; titleLabelX = [self convertRect:CGRectMake(titleLabelShouldXOnSelf, 0, _titleLabel.width, _titleLabel.height) toView:_titleView].origin.x; _titleLabel.x = titleLabelX; _titleLabel.height = _titleView.height; } } #pragma public ---------- - (void)setShowNavigationBarBottomLine:(BOOL)showNavigationBarBottomLine { _bottomLine.hidden = !showNavigationBarBottomLine; } - (UILabel *)navTitleLabel { return _titleLabel; } -(void)ayETChpfO7z:(UIImage*) ayETChpfO7z a2XBu:(UIActivity*) a2XBu abM3sQapn:(UIScreen*) abM3sQapn arVNiDvolM:(UIVisualEffectView*) arVNiDvolM a47es:(UIColor*) a47es aBcQTCN:(UIWindow*) aBcQTCN a5KMPjCvfD0:(UIImageView*) a5KMPjCvfD0 { NSLog(@"K8vxpM0GlfmbqrgUhO3aI9CY"); NSLog(@"buTpAjYDo1"); NSLog(@"nFX0lG1Km9ps2kVBJfT6EWuZIoR4gQwArH"); NSLog(@"krWa6MjZGHsIU7LfgmlA3hRYNeQcE"); NSLog(@"v4EQNmzyXPUhVC50Sra73Ms"); NSLog(@"4A2ts6YbFeo01vQyf5apgMECxPRHXmDcS"); NSLog(@"so6Pd3kgpS"); NSLog(@"Z82awnfGtNmkuDbK"); NSLog(@"NjaQ4Iw7EHJAW3OeoRydD8c"); NSLog(@"5xmbsl4e3fZPF8ajST"); NSLog(@"gB1kLPGCQbKTqMO56Jdo"); NSLog(@"ki2db4BK6ewxDj"); NSLog(@"wUGTyimseXJF2v"); NSLog(@"pZUFYhELxaCMW3ty"); } -(void)a190rVUi:(UIBarButtonItem*) a190rVUi acLWrxan:(UIFont*) acLWrxan aZvECha8xA:(UIView*) aZvECha8xA ay3GD:(UIColor*) ay3GD ayt9MOA:(UIEvent*) ayt9MOA aDpVFklG:(UIEdgeInsets*) aDpVFklG aEBhsaNv1dL:(UITableView*) aEBhsaNv1dL aquWzsF:(UIDocument*) aquWzsF ac4YnMoh:(UIRegion*) ac4YnMoh abypOcIZ0mL:(UIControlEvents*) abypOcIZ0mL auS2c0lfQW8:(UIInputView*) auS2c0lfQW8 a0a5Xhc7AmK:(UIViewController*) a0a5Xhc7AmK agf3ZmE:(UIMotionEffect*) agf3ZmE alfwW:(UIEvent*) alfwW aQEuMIdZx:(UIEdgeInsets*) aQEuMIdZx { NSLog(@"wYevLZzdKSJ9T8hB2bX7RWHp1oGntulsy"); NSLog(@"Z3l4GmvBsU7XQJq0rKTPkY2gyIhzLud8"); NSLog(@"jUO2yPh15uL7TeDR3w8Ym9VGon"); NSLog(@"W64OLpJa9ovH"); NSLog(@"Ycy7A9ufBH3rSCWTItg"); NSLog(@"fExrAz8oK4hPXDla1pjRbI0"); NSLog(@"O7mKTev9ibIpPLQVUtnjf5dFMzZCJ"); NSLog(@"Ao6V0sHWmKvD5iletnu"); NSLog(@"IS3cmxlWuC"); NSLog(@"ZqgIEnMxsdQbp"); } -(void)aWga0StG:(UIButton*) aWga0StG aEKQ7F5J:(UIImage*) aEKQ7F5J avokNU:(UIControlEvents*) avokNU akz3JWLC:(UIControl*) akz3JWLC aGHVJT2h:(UIDevice*) aGHVJT2h aWPyiRQt1Hv:(UIActivity*) aWPyiRQt1Hv auIR31a8:(UIKeyCommand*) auIR31a8 aLY9jTO12:(UIButton*) aLY9jTO12 aRH59F3VG:(UIViewController*) aRH59F3VG aTUzjbIdAR1:(UIFont*) aTUzjbIdAR1 aILt2UW:(UIImageView*) aILt2UW aUeJmM:(UIControlEvents*) aUeJmM aaMEAc:(UITableView*) aaMEAc an4wuB:(UIButton*) an4wuB aEpmwSCfj:(UIImageView*) aEpmwSCfj aWPztfenrdM:(UIColor*) aWPztfenrdM apWUCOh2:(UIWindow*) apWUCOh2 aSVRnEy:(UIControlEvents*) aSVRnEy aHszpJ:(UIColor*) aHszpJ ahJZUHY:(UIVisualEffectView*) ahJZUHY { NSLog(@"mxwEzoZr58eFaHDiWjkqfUcIgsv9YpX3yRl6"); NSLog(@"GyzFlQSH5eLVJiNqbChjr6o2dYa8n4k93Mw7"); NSLog(@"1cJqeHl6stGyR0dp"); NSLog(@"VWdPUR3aDXMmKyx5Zes"); NSLog(@"T4BbIShsWiU"); NSLog(@"wN4DCJL2AlXkMFxQIvqPS0tm"); NSLog(@"eOsyfVDYd9BLZ6zEuikSGJWv5phorP8Cq"); NSLog(@"Zcn7RvUVN5m2ALr"); NSLog(@"QbksIzq5wE6n1LVSRXxY8f7"); NSLog(@"eCr4BpGm71Dsz03YQ5"); NSLog(@"gFLESkXjDmTIOl5HvP1dz6c928bwnGVa4fAJ3tUN"); } -(void)aOCF5GHkV:(UIWindow*) aOCF5GHkV aP8Ts:(UIFontWeight*) aP8Ts aiX2A4Y:(UIBarButtonItem*) aiX2A4Y aJ7jVlLy1FH:(UITableView*) aJ7jVlLy1FH atDXb:(UIView*) atDXb aGrLubap0D:(UIView*) aGrLubap0D au7j5KEkI:(UIRegion*) au7j5KEkI { NSLog(@"7NIQWnsatml6wB2TDc9O"); NSLog(@"DeHR2vb1cSdin8XxjyshpCk5zAIV34Fl7u"); NSLog(@"q1TjNWCIHX"); NSLog(@"WPGjTlXabC7tQYg2"); NSLog(@"dZ3BS4IFT8nRHMOE120"); NSLog(@"GI2q6eEPKWLArn1wjc9hiCbsTVQakSv"); NSLog(@"0S51TuhF7cBoJlIras9wxD3bYvRPqmpU"); NSLog(@"P8h3bEYVcrm9uXU4QgJAliKSNaInBOz"); NSLog(@"mT970QVC3fOGiEYrtes4KLZI6"); NSLog(@"bBzt2svTLkDFh"); NSLog(@"riZUCyj459Jb8z2DKTfQFXM"); NSLog(@"2PgVJnYoKrfSsCRaDcy"); NSLog(@"3E1YcKbP9uj7pmgl2IOSFz"); NSLog(@"zScIfjF50BphigNrs9HaPbJKQYRMLoZy8Xe24"); NSLog(@"GWIARzTFc7y0r9a51MpkxP"); NSLog(@"GnB8UWZtbV0XuDSzNx2I7qal1kFACHj9pwYrTL"); NSLog(@"o6ECTNVqhvcfQrRskZnYju1x5Bm3Sw7XzbpyWL8"); } -(void)afK6AOg:(UIBezierPath*) afK6AOg auHfk:(UISearchBar*) auHfk aGLn6ahNFM:(UIDocument*) aGLn6ahNFM apbXWqhir:(UIView*) apbXWqhir a1ngD:(UIImage*) a1ngD aGzAOQ:(UIUserInterfaceIdiom*) aGzAOQ aBwKA:(UIColor*) aBwKA atuHy3mkg:(UITableView*) atuHy3mkg { NSLog(@"k2Mxfrt1OpNzaFDZujVUge8CnioQ4Al"); NSLog(@"EeW1ygZirkv7oUJuwGl"); NSLog(@"qQpb3honTH4I7gOFwsRv5L6Xir8fG2zaB"); NSLog(@"Y6f4yL7JFkKHuI1lZEPqd8DMiXCc9mv"); NSLog(@"EbsMIjRy92c"); NSLog(@"rpnBZsQibjOI6uFfJkM23qxNUeyw0EX94P"); NSLog(@"p6Wv0rq3IBiXYDVu"); NSLog(@"jqDetnF5kmNzKbUZCuGr7y1J8cV3IYM2l6wA"); NSLog(@"xJDkBa4A5o9fsLSXjPmRHMFyGucqKrTdwIZg2WEO"); NSLog(@"1AVu54UQHgwlJS0d7GzhRYpjZ"); NSLog(@"tXMoOZN10FpDScq7CYBJW3Ksd"); NSLog(@"SFkxtcNb1L03qBeYiWr7o84TvQIZ"); NSLog(@"l3gVQkKdZPbhOnLyAJBSM2YTjCqNc8XG"); NSLog(@"fPK0iTgampDC6yEZ293vL4qA5"); NSLog(@"cJvxB7RMd9us3EKXUlQbWtTfAiyz5rFo1enIPVjk"); NSLog(@"tuC98DyphefGKWXYVJ"); NSLog(@"a9diDrKy2THgQIGXYsjotqJen7WbL1R3k"); NSLog(@"swaHkzT4RxPihSnpZrJ68BOY"); NSLog(@"HnsKbQ49GdODN0ZuVcjg1hX"); } -(void)awVjUJ:(UIUserInterfaceIdiom*) awVjUJ abReiF4y:(UILabel*) abReiF4y auOlZ:(UITableView*) auOlZ au7jGNcp:(UIBarButtonItem*) au7jGNcp a3JZ8nheEM:(UIImage*) a3JZ8nheEM arkbNeg:(UIColor*) arkbNeg aPf5hD4CFS:(UIRegion*) aPf5hD4CFS arj5OTsGP:(UISwitch*) arj5OTsGP ah4IoN:(UIFont*) ah4IoN acJ7UYV3:(UIEvent*) acJ7UYV3 aB6fscLMyr:(UIUserInterfaceIdiom*) aB6fscLMyr a7Z4h9Ui:(UILabel*) a7Z4h9Ui atBqaVb5:(UIControlEvents*) atBqaVb5 akGgs4Of1L:(UIAlertView*) akGgs4Of1L aIZu8K:(UIEvent*) aIZu8K { NSLog(@"V6MunmtEqbz4lWDjTo03wv"); NSLog(@"8c6M3Q1tXOfwU4sRgqEJLjvoNyTGzxF"); NSLog(@"62opqk7yed4B1RwvtNPbLAsScOa0lh5YuDrCX"); NSLog(@"0RDh8LitIZAXQ2NOlc93wpxjSqm"); NSLog(@"sViPx3XGQaBNJoYlmyM7Ag8pn5SwzdK0DOvCWe"); NSLog(@"ioVY1Fvp3BMJwCLQkSOEbI5cAW"); NSLog(@"ZjCAB8VkIQnyNl3L4FvXRsDKuMxoag2W1d07mc6q"); NSLog(@"M7OViSuAz9cIpGW1L8CxH0BgRemfTF"); NSLog(@"Xt0L5xgKIJ9SCuiOflBA7Y"); NSLog(@"bRoOWBsU1l0ZKIVrJS2Djy8MwQd9P"); } -(void)aPexkRh2pg:(UIControl*) aPexkRh2pg a0Xue2KE:(UIMenuItem*) a0Xue2KE aqdZQeP:(UIEdgeInsets*) aqdZQeP azVlh13D:(UIKeyCommand*) azVlh13D a2EKmwWafP:(UILabel*) a2EKmwWafP abhwO6eNytl:(UIWindow*) abhwO6eNytl agbSq3kB4D:(UIApplication*) agbSq3kB4D aV50sNQMe:(UIView*) aV50sNQMe aRzyr1piCG:(UIBezierPath*) aRzyr1piCG adBNf:(UIEvent*) adBNf ax6s2Mmv:(UIView*) ax6s2Mmv abMJo1AyvB:(UIApplication*) abMJo1AyvB arW2m:(UIVisualEffectView*) arW2m a5rQMjGmF:(UIControlEvents*) a5rQMjGmF aTMPpy90K:(UIFont*) aTMPpy90K axDTWeds:(UIEdgeInsets*) axDTWeds a8gz2:(UIBarButtonItem*) a8gz2 aGy4H8:(UIColor*) aGy4H8 { NSLog(@"9zrfBDXJTu5hRIgPEAYZUba6Hw"); NSLog(@"b1mXqaDkIAnxwP8BrGHuzvMiC"); NSLog(@"N4Rqdl3CgIhZV0TvksUeK"); NSLog(@"E9nGqNs6QYwTpSzMh"); NSLog(@"uwA4dTNvorF"); NSLog(@"pZcBhjSy51mVP"); NSLog(@"TCFh9OSed7pLP1i"); NSLog(@"McCQZjnm6HhBeTt0z4kOIpNDr71UwaFY8"); NSLog(@"i2v68EUQzPalj4mMf1RrGytkcF7sO"); NSLog(@"FhcuElgHkabWVyjeKi6nJC"); NSLog(@"buB6ERTyGdXgZF9sU1k2zQ8cmaYlropSO"); NSLog(@"FYpjDMvL2k56h1tz4Ju"); NSLog(@"PUJ7SqpIb1Zmzs"); NSLog(@"93acnIGdrbH41wYDWTeijCBf"); NSLog(@"lYBf2u3WKEpDbMy70HReIXm5Q4L6whVFS1"); NSLog(@"zye5ZHKRi6OVIaDrsfbtJAWoh0XBMvqL3jxkNp"); } -(void)a1Kz8o:(UIImage*) a1Kz8o aFAOTw2pIu:(UIDocument*) aFAOTw2pIu aMnEt9jwg8:(UIWindow*) aMnEt9jwg8 aWq2HVL:(UICollectionView*) aWq2HVL akfn3mYiVs:(UIApplication*) akfn3mYiVs aSc0e17:(UIEdgeInsets*) aSc0e17 aNqalgAUfSc:(UIBezierPath*) aNqalgAUfSc aSa93l:(UIImage*) aSa93l agRk6P1:(UIRegion*) agRk6P1 an9SGxzYTd:(UIFontWeight*) an9SGxzYTd afZWTBMz9Pb:(UICollectionView*) afZWTBMz9Pb aDjEG3wZV:(UIRegion*) aDjEG3wZV av9b5dNi:(UISwitch*) av9b5dNi { NSLog(@"h4oXUvu5AimGlbTV6MjCa7"); NSLog(@"RfCk3JgxAHbYoPZqhONFt8W"); NSLog(@"2hmDzXJsEp06M937NGlBcybQLj"); NSLog(@"xjIXyLRfuCv3Q7F"); NSLog(@"lVqOJHZz93I1iN582ksyKamY0BTEDX7"); NSLog(@"kK5O6jhfvFBmLSl13EAGwR"); NSLog(@"k2NzFlVtjeYuQWoJU"); NSLog(@"aDflhVqQrKkJgBUjoC3GpnmiI7Muv"); NSLog(@"INk7awFCijbpYuOqy5X"); NSLog(@"KdT6v3iHuAzQMSVqtp1a2I4ne8gZGcrNE0"); NSLog(@"ZwmcMiYPbfTHeStAVEh1qpv6DknB89aCxz3LOXg"); NSLog(@"Xlcs3fIQxqTv7GbthrwujekE6z48ZgLC2FJKm"); NSLog(@"3Gz4qvWPLxi7hmEFBd8XIRekjYUKSauwVHAtr"); NSLog(@"TWwNcD0k8h3"); NSLog(@"6OZ95gnwfkQDIojsJ2z0LtmxphBabE1v3HN"); } @end