ZKButton
Posted kingstudy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZKButton相关的知识,希望对你有一定的参考价值。
// // 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;
以上是关于ZKButton的主要内容,如果未能解决你的问题,请参考以下文章