GiGaMaskTime/GIGA/Modules/Me/View/userInfoView/GiGaUserJobViewCell.m

249 lines
6.6 KiB
Objective-C

//
// GiGaUserJobViewCell.m
// GIGA
//
// Created by lianxiang on 2018/9/17.
// Copyright © 2018年 com.giga.ios. All rights reserved.
//
#import "GiGaUserJobViewCell.h"
#import "JobMaskButton.h"
#define SPACE_X 8.f //横向间隔
#define SPACE_Y 8.f //纵向间隔
#define MAR_GAINX 22.f //左右边距
#define MARK_H 31.f //高
@interface GiGaUserJobViewCell()
@property (nonatomic,assign) int countY;
@property (nonatomic,assign) int countX;
@property (nonatomic) CGFloat btnMaXY;
@end
@implementation GiGaUserJobViewCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self.selectionStyle = UITableViewCellSelectionStyleNone;
_countY = 0;
_countX = 0;
_btnMaXY = 10;
[self creatUI];
self.jobs = [NSArray new];
//self.backgroundColor = [UIColor blueColor];
}
return self;
}
-(void)creatUI{
[self addSubview:self.upDownBtn];
}
-(void)updateActionBtnFrame{
_upDownBtn.frame = CGRectMake(KMainW - 22 - 55,_btnMaXY, 55, 31);
}
- (UIButton *)upDownBtn{
if (!_upDownBtn) {
_upDownBtn = [UIButton buttonWithType:UIButtonTypeCustom];
_upDownBtn.frame = CGRectMake(KMainW - 22 - 55,_btnMaXY, 55, 31);
[_upDownBtn addTarget:self action:@selector(upDownBtnAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _upDownBtn;
}
-(void)upDownBtnAction:(UIButton *)btn{
if (btn.selected) {
NSLog(@"up");
}else{
NSLog(@"down");
}
//btn.selected = btn.selected;
self.actionblock();
}
-(void)setButtnImage:(BOOL)isUp with:(NSArray *)jobs{
self.jobs = jobs;
if (isUp) {
[self setUpUPSubViewstitles:jobs isUp:isUp];
}else{
[self setUpDownSubviewstitles:jobs isUp:isUp];
}
}
-(void)setUpUPSubViewstitles:(NSArray *)jobs isUp:(BOOL)isUp{
//展开状态
[_upDownBtn setBackgroundImage:[UIImage imageNamed:@"userjob_up"] forState:UIControlStateNormal];
if (jobs.count > 0) {
for (JobMaskButton *btn in self.subviews) {
if ([btn isKindOfClass:[JobMaskButton class]]) {
[btn removeFromSuperview];
}
}
_countX =0;
_countY = 0;
CGFloat X = MAR_GAINX;
for (int i=0; i<jobs.count; i ++) {
CGFloat width = 0;
JobModel *mode = jobs[i];
NSString *title = mode.dictLabel;
if (title.length == 2) {
width = 55;
}else if (title.length == 3){
width = 68;
}else if (title.length == 4){
width = 88;
}else{
//[self makeToast:@"最小两个字"];
width = 55;
}
[self creatjob:mode index:i isUp:isUp orinX:X width:width];
if (_countX == 0) {
X = MAR_GAINX;
}else{
X = X + width + SPACE_X;
}
}
}
}
-(void)setUpDownSubviewstitles:(NSArray *)jobs isUp:(BOOL)isUp{
//收起状态
[_upDownBtn setBackgroundImage:[UIImage imageNamed:@"userjob_down"] forState:UIControlStateNormal];
if (jobs.count > 0) {
// [titles enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
// NSString *title = obj;
// [self creatjob:title index:idx];
// }];
for (JobMaskButton *btn in self.subviews) {
if ([btn isKindOfClass:[JobMaskButton class]]) {
[btn removeFromSuperview];
}
}
_countX =0;
_countY = 0;
CGFloat X = MAR_GAINX;
for (int i=0; i<jobs.count; i ++) {
CGFloat width = 0;
JobModel *mode = jobs[i];
NSString *title = mode.dictLabel;
if (title.length == 2) {
width = 55;
}else if (title.length == 3){
width = 68;
}else if (title.length == 4){
width = 88;
}else{
//[self makeToast:@"最小两个字"];
width = 55;
}
[self creatjob:mode index:i isUp:isUp orinX:X width:width];
if (_countX == 0) {
X = MAR_GAINX;
}else{
X = X + width + SPACE_X;
}
}
}
}
-(void)creatjob:(JobModel *)job index:(int)idx isUp:(BOOL)isUp orinX:(CGFloat)X width:(CGFloat)width{
CGFloat Y = 10 + (MARK_H + SPACE_Y)*_countY;
_countX ++;
if (!isUp) {
//关闭状态 只展示一行
if ((X + width + SPACE_X) > (KMainW - 55 - 22)){
return;
}
}else{
if (_countY == 0) {
if ((X + width + SPACE_X) > (KMainW - 55 - 22)){
_countY ++;
_countX = 0;
}
}else{
if ((X + width + SPACE_X) > (KMainW - 22 - width)){
_countY ++;
_countX = 0;
}
if (idx == self.jobs.count - 1) {
_btnMaXY = Y;
[self updateActionBtnFrame];
}
}
}
JobMaskButton *jobBtn = [JobMaskButton buttonWithType:UIButtonTypeCustom];
//[jobBtn setBackgroundImage:[UIImage imageNamed:@"btn_job"] forState:UIControlStateNormal];
jobBtn.layer.masksToBounds =YES;
jobBtn.layer.cornerRadius = MARK_H /2;
jobBtn.layer.borderWidth = 1;
jobBtn.layer.borderColor = GIGARGB(222, 222, 222, 1).CGColor;
jobBtn.job = job;
if (!job.dictLabel) {
job.dictLabel = @"??";
}
NSAttributedString *attri = [GiGaHelper stringWithText:job.dictLabel textColor:GIGARGB(151, 151, 151, 1) textFont:GIGA_TEXTFONTMEDIUM(13) leterSpace:0];
[jobBtn setAttributedTitle:attri forState:UIControlStateNormal];
jobBtn.frame = CGRectMake(X,Y,width, MARK_H);
[jobBtn addTarget:self action:@selector(jobClick:) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:jobBtn];
}
-(void)userSelectjobAction:(jobBtnAction)block{
self.actionblock = block;
}
-(void)userSelectjob:(jobSelectAction)block{
self.jobblock = block;
}
-(void)jobClick:(JobMaskButton *)btn{
self.jobblock(btn.job);
}
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end