Files
ifish/Ifish/controllers/IfishYooseeFile/IfishYooseeHelper/CustomTopBar.m
T
2017-08-15 16:59:01 +08:00

263 lines
11 KiB
Objective-C

//
// CustomTopBar.m
// Yoosee
//
// Created by eppla on 16/3/23.
// Copyright © 2016年 guojunyi. All rights reserved.
//
#import "CustomTopBar.h"
#import "Constants.h"
@implementation CustomTopBar
#define MSG_ICON_ITERVAL_X 17
#define MSG_ICON_ITERVAL_Y 7
#define LEFT_BAR_BTN_WIDTH (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? 90:60)
#define LEFT_BAR_BTN_MARGIN (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? 10:5.0)
#define RIGHT_BAR_BTN_WIDTH (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? 90:60)
#define RIGHT_BAR_BTN_MARGIN (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? 10:5)
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
//TopBar导航的背景
UIImageView *backImgView = [[UIImageView alloc] initWithFrame:frame];
backImgView.image = [UIImage imageNamed:@""];
[self addSubview:backImgView];
self.backgroundImageView = backImgView;
//导航内容的frame为(0.0, 20.0, width, 44.0)
if(CURRENT_VERSION>=7.0){
frame = CGRectMake(frame.origin.x, frame.origin.y+20, frame.size.width, frame.size.height-20);
}
//导航的标题
UILabel *textLabel = [[UILabel alloc] initWithFrame:frame];
textLabel.backgroundColor = XBGAlpha;
textLabel.textAlignment = NSTextAlignmentCenter;
textLabel.textColor = XHeadBarTextColor;
[textLabel setFont:[UIFont boldSystemFontOfSize:XHeadBarTextSize]];
[backImgView addSubview:textLabel];
self.titleLabel = textLabel;
//导航的返回按钮
//导航栏为44.0,图片为20.0*20.0
CGFloat backButton_x = 5.0;
CGFloat backButton_y = 5.0;
CGFloat backButton_w = 44.0-2*backButton_y;
CGFloat backButton_h = backButton_w;
UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
backButton.frame = CGRectMake(backButton_x, frame.origin.y+backButton_y, backButton_w, backButton_h);
[self addSubview:backButton];
[backButton setHidden:YES];
self.backButton = backButton;
//返回按钮的图片
UIImageView *backBtnIconView = [[UIImageView alloc]initWithFrame:CGRectMake((self.backButton.frame.size.width-self.backButton.frame.size.height)/2, 0, self.backButton.frame.size.height, self.backButton.frame.size.height)];
backBtnIconView.image = [UIImage imageNamed:@""];
[self.backButton addSubview:backBtnIconView];
self.backButtonIconView = backBtnIconView;
//导航左边的按钮(只是大小与返回按钮不同)
//导航栏为44.0,图片为20.0*20.0
CGFloat leftButton_x = 5.0;
CGFloat leftButton_y = 5.0;
CGFloat leftButton_w = 44.0-2*leftButton_y;
CGFloat leftButton_h = leftButton_w;
UIButton *leftButton = [UIButton buttonWithType:UIButtonTypeCustom];
leftButton.frame = CGRectMake(leftButton_x, frame.origin.y+leftButton_y, leftButton_w, leftButton_h);
[self addSubview:leftButton];
[leftButton setHidden:YES];
self.leftButton = leftButton;
//左边按钮的图片
UIImageView *leftButtonIconView = [[UIImageView alloc]initWithFrame:CGRectMake((self.leftButton.frame.size.width-self.leftButton.frame.size.height)/2, LEFT_BAR_BTN_MARGIN, self.leftButton.frame.size.height-10, self.leftButton.frame.size.height-10)];
leftButtonIconView.image = [UIImage imageNamed:@""];
leftButtonIconView.contentMode = UIViewContentModeScaleAspectFit;
[self.leftButton addSubview:leftButtonIconView];
self.leftButtonIconView = leftButtonIconView;
//导航右边的按钮
//导航栏为44.0,图片为20.0*20.0
CGFloat rightMargin = 5.0;
CGFloat rightButton_y = 5.0;
CGFloat rightButton_w = 44.0-2*rightButton_y;
CGFloat rightButton_h = rightButton_w;
UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeCustom];
rightButton.frame = CGRectMake(frame.size.width-rightMargin-rightButton_w, frame.origin.y+rightButton_y, rightButton_w, rightButton_h);
[self addSubview:rightButton];
[rightButton setHidden:YES];
self.rightButton = rightButton;
//右边按钮的图片
UIImageView *rightButtonIconView = [[UIImageView alloc]initWithFrame:CGRectMake((self.rightButton.frame.size.width-self.rightButton.frame.size.height)/2, 0, self.rightButton.frame.size.height, self.rightButton.frame.size.height)];
rightButtonIconView.image = [UIImage imageNamed:@""];
[self.rightButton addSubview:rightButtonIconView];
self.rightButtonIconView = rightButtonIconView;
//右边按钮的文本
UILabel *rightButtonLabel = [[UILabel alloc] initWithFrame:CGRectMake(0,0,self.rightButton.frame.size.width,self.rightButton.frame.size.height)];
rightButtonLabel.backgroundColor = XBGAlpha;
rightButtonLabel.textAlignment = NSTextAlignmentCenter;
rightButtonLabel.textColor = XWhite;
[rightButtonLabel setFont:XFontBold_14];
[self.rightButton addSubview:rightButtonLabel];
self.rightButtonLabel = rightButtonLabel;
//导航第二种右边按钮(显示新的报警记录)
UIButton *rightButton2 = [UIButton buttonWithType:UIButtonTypeCustom];
rightButton2.frame = CGRectMake(frame.origin.x+(frame.size.width-RIGHT_BAR_BTN_MARGIN-RIGHT_BAR_BTN_WIDTH-RIGHT_BAR_BTN_WIDTH+10), frame.origin.y+RIGHT_BAR_BTN_MARGIN, RIGHT_BAR_BTN_WIDTH, frame.size.height-RIGHT_BAR_BTN_MARGIN*2);
rightButton2.layer.cornerRadius = 10;
[self addSubview:rightButton2];
[rightButton2 setHidden:YES];
self.rightButton2 = rightButton2;
//按钮文本
UILabel *rightButtonLabel2 = [[UILabel alloc] initWithFrame:CGRectMake(self.rightButton2.frame.origin.x+self.rightButton2.frame.size.width-MSG_ICON_ITERVAL_X-10, self.rightButton2.frame.origin.y+MSG_ICON_ITERVAL_Y-8, 16, 16)];
rightButtonLabel2.backgroundColor = [UIColor redColor];
rightButtonLabel2.layer.cornerRadius = 8;//rectButton2.size.height/2;
[[rightButtonLabel2 layer] setMasksToBounds:YES];
rightButtonLabel2.textAlignment = NSTextAlignmentCenter;
rightButtonLabel2.textColor = XWhite;
[rightButtonLabel2 setFont:[UIFont boldSystemFontOfSize:8.0]];
[self addSubview:rightButtonLabel2];
rightButtonLabel2.hidden = YES;
self.rightButtonLabel2 = rightButtonLabel2;
}
return self;
}
#pragma mark - 导航背景设置
-(void)setBackgroundImageViewWith:(UIImage *)backgroundImage withBackgroundColor:(UIColor *)backgroundColor{
if (self.backgroundImageView && backgroundImage) {//bg_navigation_bar.png
backgroundImage = [backgroundImage stretchableImageWithLeftCapWidth:backgroundImage.size.width*0.5 topCapHeight:backgroundImage.size.height*0.5];
self.backgroundImageView.image = backgroundImage;
}
if (self.backgroundImageView && backgroundColor) {//UIColorFromRGB(0x35c5e7)
[self.backgroundImageView setBackgroundColor:backgroundColor];
}
}
#pragma mark - 设置导航的标题
-(void)setTitle:(NSString *)title{
if(self.titleLabel){
self.titleLabel.text = title;
}
}
#pragma mark - 导航返回按钮
#pragma mark 隐藏或者显示
-(void)setBackButtonHidden:(BOOL)hidden{
if(self.backButton){
[self.backButton setHidden:hidden];
}
}
#pragma mark 设置图片
-(void)setBackButtonIcon:(UIImage*)img{
if (self.backButtonIconView) {
CGFloat backButtonIconView_w = img.size.width/SCREEN_SCALE;
CGFloat backButtonIconView_h = backButtonIconView_w*(img.size.height/img.size.width);
self.backButtonIconView.frame = CGRectMake((self.backButton.frame.size.width-backButtonIconView_w)/2, (self.backButton.frame.size.height-backButtonIconView_h)/2, backButtonIconView_w, backButtonIconView_h);
self.backButtonIconView.image = img;
}
}
#pragma mark - 导航左边按钮
#pragma mark 隐藏或者显示
-(void)setLeftButtonHidden:(BOOL)hidden{
if (self.leftButton) {
[self.leftButton setHidden:hidden];
}
}
#pragma mark 设置图片
-(void)setLeftButtonIcon:(UIImage *)img{
if (self.leftButtonIconView) {
CGFloat leftButtonIconView_w = img.size.width/SCREEN_SCALE;
CGFloat leftButtonIconView_h = leftButtonIconView_w*(img.size.height/img.size.width);
self.leftButtonIconView.frame = CGRectMake((self.rightButton.frame.size.width-leftButtonIconView_w)/2, (self.rightButton.frame.size.height-leftButtonIconView_h)/2, leftButtonIconView_w, leftButtonIconView_h);
self.leftButtonIconView.image = img;
}
}
#pragma mark - 导航右边按钮
#pragma mark 隐藏或者显示
-(void)setRightButtonHidden:(BOOL)hidden{
if(self.rightButton){
[self.rightButton setHidden:hidden];
}
}
#pragma mark 设置图片
-(void)setRightButtonIcon:(UIImage *)img{
if(self.rightButtonIconView){
CGFloat rightButtonIconView_w = img.size.width/SCREEN_SCALE;
CGFloat rightButtonIconView_h = rightButtonIconView_w*(img.size.height/img.size.width);
self.rightButtonIconView.frame = CGRectMake((self.rightButton.frame.size.width-rightButtonIconView_w)/2, (self.rightButton.frame.size.height-rightButtonIconView_h)/2, rightButtonIconView_w, rightButtonIconView_h);
self.rightButtonIconView.image = img;
}
}
#pragma mark 设置文本
-(void)setRightButtonText:(NSString *)text{
if(self.rightButtonLabel){
self.rightButtonLabel.text = text;
}
}
#pragma mark - 导航右边按钮2
#pragma mark 隐藏或者显示
-(void)setRightButtonHidden2:(BOOL)hidden{
if (self.rightButton2) {
[self.rightButton2 setHidden:hidden];
[self.rightButtonLabel2 setHidden:hidden];
}
}
#pragma mark 设置图片2
-(void)setRightButtonIcon2:(UIImage *)img{
if (self.rightButton2) {
self.rightButton2.imageEdgeInsets = UIEdgeInsetsMake(MSG_ICON_ITERVAL_Y, MSG_ICON_ITERVAL_X, MSG_ICON_ITERVAL_Y, MSG_ICON_ITERVAL_X);
[self.rightButton2 setImage:img forState:UIControlStateNormal];
}
}
#pragma mark 设置文本2
-(void)setRightButtonText2:(NSString *)text{
if (self.rightButtonLabel2 == nil || self.rightButton2 == nil)
return;
if (NSOrderedSame == [text compare:@"0"])
{
[self.rightButton2 setHidden:YES];
[self.rightButtonLabel2 setHidden:YES];
}
else
{
[self.rightButton2 setHidden:NO];
[self.rightButtonLabel2 setHidden:NO];
[self.rightButtonLabel2 setText:text];
}
}
@end