
//
// ZKButton.h
// WaterProofer
//
// Created by HELLO WORLD on 2019/9/15.
// Copyright © 2019年 WaterProofer. All rights reserved.
//
#import <UIKit/UIKit.h>
typedef NS_ENUM(NSInteger, ZKButtonType) {
ZKButtonTypeLeftAndRight=0,//左右结构
ZKButtonTypeTopAndBottom=0,//上下结构
};
NS_ASSUME_NONNULL_BEGIN
@interface ZKButton : UIButton
@property(nonatomic,assign)ZKButtonType type;
@property(nonatomic,strong)NSString* left_top_SelectImg;
@property(nonatomic,strong)NSString* left_top_DefaultImg;
@property(nonatomic,strong)NSString* left_top_SelectTitle;
@property(nonatomic,strong)NSString* left_top_DefaultTitle;
@property(nonatomic,strong)NSString* right_bottom_SelectImg;
@property(nonatomic,strong)NSString* right_bottom_DefaultImg;
@property(nonatomic,strong)NSString* right_bottom_SelectTitle;
@property(nonatomic,strong)NSString* right_bottom_DefaultTitle;
@property(nonatomic,assign)BOOL isSelect;
@property(nonatomic,strong)UIButton* left_top;//左上
@property(nonatomic,strong)UIButton* right_bottom;//右下
@property(nonatomic,copy)void(^selectBlock)(BOOL isSelect,NSInteger selectIndex);
@end
NS_ASSUME_NONNULL_END

//
// ZKButton.m
// WaterProofer
//
// Created by HELLO WORLD on 2019/9/15.
// Copyright © 2019年 WaterProofer. All rights reserved.
//
#import "ZKButton.h"
#define ZKWeakSelf __weak typeof(self) weakSelf = self;
@interface ZKButton()
@end
@implementation ZKButton
-(instancetype)init{
if (self= [super init]){
_left_top = [UIButton buttonWithType:UIButtonTypeCustom];
[_left_top addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:_left_top];
_right_bottom = [UIButton buttonWithType:UIButtonTypeCustom];
[_right_bottom addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
_right_bottom.userInteractionEnabled = YES;
_right_bottom.imageView.userInteractionEnabled = YES;
[self addSubview:_right_bottom];
}
return self;
}
-(void)setType:(ZKButtonType)type{
_type = type;
ZKWeakSelf
switch (_type) {
case 0:
{//左右结构
[_left_top mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self);
make.left.equalTo(self.mas_left).offset(5);
}];
[_right_bottom mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.mas_equalTo(self);
make.left.equalTo(weakSelf.left_top.mas_right).with.offset(5);
make.right.equalTo(self.mas_right).offset(-5);
}];
}
break;
case 1:
{//上下结构
[_left_top mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self);
make.top.equalTo(self.mas_top).offset(5);
}];
[_right_bottom mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self);
make.top.equalTo(weakSelf.left_top.mas_bottom).with.offset(5);
make.bottom.equalTo(self.mas_bottom).offset(-5);
}];
}
break;
default:
break;
}
}
#pragma - mark - left_top
-(void)setLeft_top_DefaultImg:(NSString *)left_top_DefaultImg{
_left_top_DefaultImg = left_top_DefaultImg;
[_left_top setImage:[UIImage imageNamed:_left_top_DefaultImg] forState:UIControlStateNormal];
}
-(void)setLeft_top_SelectImg:(NSString *)left_top_SelectImg{
_left_top_SelectImg = left_top_SelectImg;
[_left_top setImage:[UIImage imageNamed:_left_top_SelectImg] forState:UIControlStateSelected];
}
-(void)setLeft_top_DefaultTitle:(NSString *)left_top_DefaultTitle{
_left_top_DefaultTitle = left_top_DefaultTitle;
[_left_top setTitleColor:ColorHex_666666 forState:UIControlStateNormal];
[_left_top setTitle:_left_top_DefaultTitle forState:UIControlStateNormal];
}
-(void)setLeft_top_SelectTitle:(NSString *)left_top_SelectTitle{
_left_top_SelectTitle = left_top_SelectTitle;
[_left_top setTitleColor:ColorHex_666666 forState:UIControlStateSelected];
[_left_top setTitle:_left_top_SelectTitle forState:UIControlStateSelected];
}
#pragma - mark - right_bottom
-(void)setRight_bottom_DefaultImg:(NSString *)right_bottom_DefaultImg{
_right_bottom_DefaultImg = right_bottom_DefaultImg;
[_right_bottom setImage:[UIImage imageNamed:_right_bottom_DefaultImg] forState:UIControlStateNormal];
}
-(void)setRight_bottom_SelectImg:(NSString *)right_bottom_SelectImg{
_right_bottom_SelectImg = right_bottom_SelectImg;
[_right_bottom setImage:[UIImage imageNamed:_right_bottom_SelectImg] forState:UIControlStateSelected];
}
-(void)setRight_bottom_DefaultTitle:(NSString *)right_bottom_DefaultTitle{
_right_bottom_DefaultTitle = right_bottom_DefaultTitle;
[_right_bottom setTitleColor:ColorHex_666666 forState:UIControlStateNormal];
[_right_bottom setTitle:_right_bottom_DefaultTitle forState:UIControlStateNormal];
}
-(void)setRight_bottom_SelectTitle:(NSString *)right_bottom_SelectTitle{
_right_bottom_SelectTitle = right_bottom_SelectTitle;
[_right_bottom setTitleColor:ColorHex_666666 forState:UIControlStateSelected];
[_right_bottom setTitle:_right_bottom_SelectTitle forState:UIControlStateSelected];
}
-(void)setIsSelect:(BOOL)isSelect{
_isSelect = isSelect;
_left_top.selected = _isSelect;
_right_bottom.selected = _isSelect;
}
-(void)btnClick:(UIButton*)btn{
//self.isSelect = !self.isSelect;//后期扩展功能用适合多选择
if (self.selectBlock){
self.selectBlock(YES, self.tag);
}
}
@end

-(void)createSelectButton
{
_buttonArray = [NSMutableArray array];
ZKButton* tempBtn = nil;
WPWeakSelf
for(int i=0 ; i<4; i++){
ZKButton* button = [[ZKButton alloc] init];
button.selectBlock = ^(BOOL isSelect, NSInteger selectIndex) {
[weakSelf.buttonArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
ZKButton *button = (ZKButton *)obj;
button.isSelect = (button.tag==selectIndex)?YES:NO;
}];
};
//button.hidden = YES;
button.tag = i+100;
button.left_top_DefaultImg = @"hire_line_default";
button.left_top_SelectImg=@"hire_line_select";
[button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
button.type = ZKButtonTypeLeftAndRight;
[self.btnView addSubview:button];
if (i==0) {
button.isSelect = YES;
[button mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(_btnView.mas_left).offset(10);
//make.size.mas_equalTo(CGSizeMake(20, 20));
make.centerY.equalTo(_btnView.mas_centerY);
}];
}else{
button.isSelect = NO;
[button mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(tempBtn.mas_right).offset(10);
//make.size.mas_equalTo(CGSizeMake(20, 20));
make.centerY.equalTo(_btnView.mas_centerY);
}];
}
tempBtn = button;
[_buttonArray addObject:button];
}
}
-(void)buttonClick:(ZKButton *)sender
{
[_buttonArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
ZKButton *button = (ZKButton *)obj;
button.isSelect = NO;
}];
sender.isSelect = YES;
}
