ifish/Ifish/views/IifshSegmentView/IifshSegmentView.m

132 lines
4.4 KiB
Objective-C

//
// IifshSegmentView.m
// CollectionViewTest
//
// Created by imac on 17/3/14.
// Copyright © 2017年 xiang. All rights reserved.
//
#import "IifshSegmentView.h"
#define SEG_TITLE_FONTCOLOR RGB(38, 192, 238)
#define SEG_LINE_FONTCOLOR RGB(0, 185.0, 239.0)
#define SEG_TITLE_FONTNORMAllCOLOR RGB(51.0, 51.0, 51.0)
@interface IifshSegmentView()
@property (nonatomic,strong) UIView *BootomLine;
@property (nonatomic,strong) UIButton *leftBtn;
@property (nonatomic,strong) UIButton *rightBtn;
@property (nonatomic) NSInteger selectIndex;
@property (nonatomic,copy) NSString *leftTitle;
@property (nonatomic,copy) NSString *rightTitle;
@property (nonatomic,strong) UIView *lineView;
@end
@implementation IifshSegmentView
-(instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self creatSubs];
self.backgroundColor = [UIColor whiteColor];
}
return self;
}
-(void)creatSubs
{
CGFloat BtnW = (self.frame.size.width-2)/2;
_leftBtn =[UIButton buttonWithType:UIButtonTypeCustom];
_leftBtn.frame = CGRectMake(0, 0,BtnW, self.frame.size.height);
[_leftBtn addTarget:self action:@selector(leftBtnAction:) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:_leftBtn];
CGFloat lineW = 79.0*KWidth_Scale;
_BootomLine = [[UIView alloc] initWithFrame:CGRectMake(BtnW/2 - lineW/2, self.frame.size.height -2, lineW, 2)];
_BootomLine.backgroundColor = SEG_LINE_FONTCOLOR;
[self addSubview:_BootomLine];
[self bringSubviewToFront:_BootomLine];
_lineView = [[UIView alloc] initWithFrame:CGRectMake(CGRectGetMaxX(_leftBtn.frame),6,1, self.frame.size.height - 6 -2)];
_lineView.backgroundColor = [UIColor lightGrayColor];
[self addSubview:_lineView];
_rightBtn =[UIButton buttonWithType:UIButtonTypeCustom];
_rightBtn.frame = CGRectMake(CGRectGetMaxX(_lineView.frame), 0,BtnW, self.frame.size.height);
[_rightBtn addTarget:self action:@selector(rightBtnAction:) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:_rightBtn];
}
-(void)rightBtnAction:(UIButton*)btn{
if (_selectIndex ==1) {
return;
}
if (self.segDelegate) {
if (self.isSelectStyle) {
[self setLeftTitleColor:SEG_TITLE_FONTNORMAllCOLOR rightTilteColor:SEG_TITLE_FONTCOLOR];
}
CGFloat lineW = 79.0*KWidth_Scale;
_BootomLine.frame =CGRectMake(CGRectGetMidX(btn.frame) - lineW/2, self.frame.size.height -2, lineW, 2);
[self.segDelegate segmentSelectAtIndext:1];
_selectIndex = 1;
}
}
-(void)leftBtnAction:(UIButton *)btn{
if (_selectIndex ==0) {
return;
}
if (self.segDelegate) {
if (self.isSelectStyle) {
[self setLeftTitleColor:SEG_TITLE_FONTCOLOR rightTilteColor:SEG_TITLE_FONTNORMAllCOLOR];
}
CGFloat BtnW = (self.frame.size.width-2)/2;
CGFloat lineW = 79.0*KWidth_Scale;
_BootomLine.frame =CGRectMake(BtnW/2 - lineW/2, self.frame.size.height -2, lineW, 2);
[self.segDelegate segmentSelectAtIndext:0];
_selectIndex = 0;
}
}
-(void)initleftTitle:(NSString *)leftTitle addRightTitle:(NSString *)rightTitle isSelectStyle:(BOOL)isSelectStyle{
self.isSelectStyle = isSelectStyle;
_rightBtn.titleLabel.font = [UIFont systemFontOfSize:15];
[_rightBtn setTitle:rightTitle forState:UIControlStateNormal];
[_rightBtn setTitleColor:SEG_TITLE_FONTNORMAllCOLOR forState:UIControlStateNormal];
_leftBtn.titleLabel.font = [UIFont systemFontOfSize:15];
[_leftBtn setTitle:leftTitle forState:UIControlStateNormal];
[_leftBtn setTitleColor:SEG_TITLE_FONTNORMAllCOLOR forState:UIControlStateNormal];
_rightTitle = rightTitle;
_leftTitle = leftTitle;
// 默认选中左侧
if (isSelectStyle) {
[self setLeftTitleColor:SEG_TITLE_FONTCOLOR rightTilteColor:SEG_TITLE_FONTNORMAllCOLOR];
//隐藏中间line 暂用 isSelectStyle 判断
_lineView.hidden = YES;
}
}
-(void)setLeftTitleColor:(UIColor*)leftTitleColor rightTilteColor:(UIColor *)rightTitleColor
{
[_rightBtn setTitleColor:rightTitleColor forState:UIControlStateNormal];
[_leftBtn setTitleColor:leftTitleColor forState:UIControlStateNormal];
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
}
*/
@end