303 lines
8.6 KiB
Objective-C
Executable File
303 lines
8.6 KiB
Objective-C
Executable File
//
|
|
// CustomNavigationView.m
|
|
// LefenStore1.0
|
|
//
|
|
// Created by LGY on 2017/10/19.
|
|
// Copyright © 2017年 lefen58.com. All rights reserved.
|
|
//
|
|
#define LineColor COLOR16(0xe7e7e7)
|
|
#define NavFontColor COLOR16(0x333333)
|
|
|
|
#import "CustomNavigationView.h"
|
|
|
|
@implementation CustomNavigationView
|
|
|
|
#pragma mark -- init
|
|
- (instancetype)initWithFrame:(CGRect)frame
|
|
{
|
|
self = [super initWithFrame:frame];
|
|
if (self) {
|
|
[self initView];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)initView
|
|
{
|
|
__weak typeof(self) weakSelf = self;
|
|
self.backgroundColor = [UIColor whiteColor];
|
|
[self.cusNavView addSubview:self.left0Btn];
|
|
[self.cusNavView addSubview:self.left1Btn];
|
|
[self.cusNavView addSubview:self.titleImg];
|
|
[self.cusNavView addSubview:self.titleLab];
|
|
[self.cusNavView addSubview:self.right1Btn];
|
|
[self.cusNavView addSubview:self.right0Btn];
|
|
[self.cusNavView addSubview:self.rightTitleBtn];
|
|
[self addSubview:self.bgImg];
|
|
[self addSubview:self.cusNavView];
|
|
[self addSubview:self.btmLine];
|
|
[self.titleImg mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.centerX.equalTo(weakSelf.cusNavView.mas_centerX);
|
|
make.centerY.equalTo(weakSelf.cusNavView.mas_centerY);
|
|
}];
|
|
[self.rightTitleBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.right.equalTo(weakSelf.cusNavView.mas_right).offset(-20);
|
|
make.centerY.equalTo(weakSelf.cusNavView.mas_centerY);
|
|
make.height.mas_equalTo(44);
|
|
}];
|
|
}
|
|
|
|
#pragma mark -- handleAction
|
|
- (void)cus_setNavTitle:(NSString *)title
|
|
{
|
|
if (title) {
|
|
self.titleLab.text = title;
|
|
}
|
|
}
|
|
|
|
- (void)cus_setNavBackgroundColor:(UIColor *)color
|
|
{
|
|
self.backgroundColor = color;
|
|
}
|
|
|
|
- (void)cus_setNavBackgroundImage:(UIImage *)image
|
|
{
|
|
if (image) {
|
|
self.bgImg.image = image;
|
|
}
|
|
}
|
|
|
|
- (void)cus_setNavTintColor:(UIColor *)color
|
|
{
|
|
if (color) {
|
|
self.left0Btn.tintColor = color;
|
|
self.left1Btn.tintColor = color;
|
|
self.right1Btn.tintColor = color;
|
|
self.right0Btn.tintColor = color;
|
|
self.rightTitleBtn.tintColor = color;
|
|
}
|
|
}
|
|
|
|
- (void)cus_setNavTitleColor:(UIColor *)color
|
|
{
|
|
if (color) {
|
|
self.titleLab.textColor = color;
|
|
}
|
|
}
|
|
|
|
// 0 返回按钮 1 返回和更多按钮 2 返回+特殊+更多按钮 3返回+文字按钮 4全部隐藏
|
|
- (void)cus_setNavShow:(NSInteger)type
|
|
{
|
|
self.left0Btn.hidden = YES;
|
|
self.left1Btn.hidden = YES;
|
|
self.right0Btn.hidden = YES;
|
|
self.right1Btn.hidden = YES;
|
|
self.rightTitleBtn.hidden = YES;
|
|
switch (type) {
|
|
case 0: {
|
|
self.left0Btn.hidden = NO;
|
|
}
|
|
break;
|
|
case 1: {
|
|
self.left0Btn.hidden = NO;
|
|
self.right0Btn.hidden = NO;
|
|
}
|
|
break;
|
|
case 2: {
|
|
self.left0Btn.hidden = NO;
|
|
self.right0Btn.hidden = NO;
|
|
self.right1Btn.hidden = NO;
|
|
}
|
|
break;
|
|
case 3: {
|
|
self.left0Btn.hidden = NO;
|
|
self.rightTitleBtn.hidden = NO;
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
- (void)handleBack:(id)sender
|
|
{
|
|
if (self.handleBackBlock) {
|
|
self.handleBackBlock();
|
|
} else {
|
|
if (self.viewController.navigationController) {
|
|
[self.viewController.navigationController popViewControllerAnimated:YES];
|
|
} else {
|
|
[self.viewController dismissViewControllerAnimated:YES completion:nil];
|
|
}
|
|
}
|
|
}
|
|
|
|
- (void)handleGuanbi:(id)sender
|
|
{
|
|
if (self.handleGuanBiBlock) {
|
|
self.handleGuanBiBlock();
|
|
}
|
|
}
|
|
|
|
- (void)handleRight0Btn:(id)sender
|
|
{
|
|
if (self.handleRight0Block) {
|
|
self.handleRight0Block();
|
|
}
|
|
}
|
|
|
|
- (void)handleRightBtn1:(id)sender
|
|
{
|
|
if (self.handleRight1Block) {
|
|
self.handleRight1Block();
|
|
}
|
|
}
|
|
|
|
- (void)handleRightTitleBtn:(id)sender
|
|
{
|
|
if (self.handleRightTitleBlock) {
|
|
self.handleRightTitleBlock();
|
|
}
|
|
}
|
|
|
|
#pragma mark -- lazyLoad
|
|
- (UIImageView *)bgImg
|
|
{
|
|
if (!_bgImg) {
|
|
_bgImg = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, APPW, yb_NavigationBar_H)];
|
|
_bgImg.contentMode = UIViewContentModeScaleAspectFill;
|
|
_bgImg.layer.masksToBounds = YES;
|
|
}
|
|
return _bgImg;
|
|
}
|
|
|
|
- (UIView *)cusNavView
|
|
{
|
|
if (!_cusNavView) {
|
|
_cusNavView = [[UIView alloc] initWithFrame:CGRectMake(0, yb_StatusBar_H, APPW, 44)];
|
|
}
|
|
return _cusNavView;
|
|
}
|
|
|
|
- (UIView *)btmLine
|
|
{
|
|
if (!_btmLine) {
|
|
_btmLine = [[UIView alloc] initWithFrame:CGRectMake(0, yb_StatusBar_H + 43.5, APPW, 0.5)];
|
|
_btmLine.backgroundColor = LineColor;
|
|
_btmLine.hidden = NO;
|
|
}
|
|
return _btmLine;
|
|
}
|
|
|
|
- (UIButton *)left0Btn
|
|
{
|
|
if (!_left0Btn) {
|
|
_left0Btn = [UIButton buttonWithType:UIButtonTypeCustom];
|
|
_left0Btn.frame = CGRectMake(0, 0, 44, 44);
|
|
_left0Btn.contentMode = UIViewContentModeScaleAspectFit;
|
|
_left0Btn.titleLabel.font = [UIFont systemFontOfSize:14];
|
|
_left0Btn.titleLabel.textColor = NavFontColor;
|
|
_left0Btn.tintColor = NavFontColor;
|
|
[_left0Btn setImage:[UIImage imageNamed:@"blackBack"] forState:UIControlStateNormal];
|
|
[_left0Btn addTarget:self action:@selector(handleBack:) forControlEvents:UIControlEventTouchUpInside];
|
|
}
|
|
return _left0Btn;
|
|
}
|
|
|
|
- (UIButton *)left1Btn
|
|
{
|
|
if (!_left1Btn) {
|
|
_left1Btn = [UIButton buttonWithType:UIButtonTypeSystem];
|
|
_left1Btn.frame = CGRectMake(44, 0, 44, 44);
|
|
_left1Btn.contentMode = UIViewContentModeScaleAspectFit;
|
|
_left1Btn.titleLabel.font = [UIFont systemFontOfSize:14];
|
|
_left1Btn.titleLabel.textColor = NavFontColor;
|
|
_left1Btn.tintColor = NavFontColor;
|
|
[_left1Btn setTitle:@"关闭" forState:UIControlStateNormal];
|
|
[_left1Btn addTarget:self action:@selector(handleGuanbi:) forControlEvents:UIControlEventTouchUpInside];
|
|
_left1Btn.hidden = YES;
|
|
}
|
|
return _left1Btn;
|
|
}
|
|
|
|
- (UIImageView *)titleImg
|
|
{
|
|
if (!_titleImg) {
|
|
_titleImg = [[UIImageView alloc] init];
|
|
_titleImg.contentMode = UIViewContentModeScaleAspectFit;
|
|
_titleImg.layer.masksToBounds = YES;
|
|
_titleImg.hidden = YES;
|
|
[_titleImg sizeToFit];
|
|
}
|
|
return _titleImg;
|
|
}
|
|
|
|
- (UILabel *)titleLab
|
|
{
|
|
if (!_titleLab) {
|
|
_titleLab = [[UILabel alloc] initWithFrame:CGRectMake(88, 0, APPW - 176, 44)];
|
|
_titleLab.textColor = NavFontColor;
|
|
_titleLab.font = [UIFont systemFontOfSize:18 weight:0.3];
|
|
_titleLab.textAlignment = NSTextAlignmentCenter;
|
|
}
|
|
return _titleLab;
|
|
}
|
|
|
|
- (UIButton *)right0Btn
|
|
{
|
|
if (!_right0Btn) {
|
|
_right0Btn = [UIButton buttonWithType:UIButtonTypeCustom];
|
|
_right0Btn.frame = CGRectMake(APPW - 44, 0, 44, 44);
|
|
_right0Btn.contentMode = UIViewContentModeScaleAspectFit;
|
|
_right0Btn.titleLabel.font = [UIFont systemFontOfSize:14];
|
|
_right0Btn.titleLabel.textColor = NavFontColor;
|
|
_right0Btn.tintColor = NavFontColor;
|
|
[_right0Btn setImage:[UIImage imageNamed:@"navMore"] forState:UIControlStateNormal];
|
|
[_right0Btn addTarget:self action:@selector(handleRight0Btn:) forControlEvents:UIControlEventTouchUpInside];
|
|
_right0Btn.hidden = YES;
|
|
}
|
|
return _right0Btn;
|
|
}
|
|
|
|
- (UIButton *)right1Btn
|
|
{
|
|
if (!_right1Btn) {
|
|
_right1Btn = [UIButton buttonWithType:UIButtonTypeCustom];
|
|
_right1Btn.frame = CGRectMake(APPW - 88, 0, 44, 44);
|
|
_right1Btn.contentMode = UIViewContentModeScaleAspectFit;
|
|
_right1Btn.titleLabel.font = [UIFont systemFontOfSize:14];
|
|
_right1Btn.titleLabel.textColor = NavFontColor;
|
|
_right1Btn.tintColor = NavFontColor;
|
|
[_right1Btn setImage:[UIImage imageNamed:@"special"] forState:UIControlStateNormal];
|
|
[_right1Btn addTarget:self action:@selector(handleRightBtn1:) forControlEvents:UIControlEventTouchUpInside];
|
|
_right1Btn.hidden = YES;
|
|
}
|
|
return _right1Btn;
|
|
}
|
|
|
|
- (UIButton *)rightTitleBtn
|
|
{
|
|
if (!_rightTitleBtn) {
|
|
_rightTitleBtn = [UIButton buttonWithType:UIButtonTypeCustom];
|
|
_rightTitleBtn.contentMode = UIViewContentModeScaleAspectFit;
|
|
_rightTitleBtn.titleLabel.font = [UIFont systemFontOfSize:14];
|
|
[_rightTitleBtn setTitleColor:HEXCOLOR(0x666666) forState:UIControlStateNormal];
|
|
[_rightTitleBtn addTarget:self action:@selector(handleRightTitleBtn:) forControlEvents:UIControlEventTouchUpInside];
|
|
_rightTitleBtn.hidden = YES;
|
|
[_rightTitleBtn sizeToFit];
|
|
}
|
|
return _rightTitleBtn;
|
|
}
|
|
|
|
- (void)styleClear {
|
|
self.backgroundColor = UIColor.clearColor;
|
|
self.btmLine.hidden = YES;
|
|
}
|
|
|
|
- (void)styleBackWhite {
|
|
[self.left0Btn setImage:[UIImage imageNamed:@"BM_Tools_White_arrow_left"] forState:UIControlStateNormal];
|
|
self.titleLab.textColor = UIColor.whiteColor;
|
|
}
|
|
|
|
@end
|