// // PBProjectTableViewCell.m // IphoneBIMe // // Created by zjf on 2018/7/13. // Copyright © 2018年 ProBIM. All rights reserved. // #import "PBProjectTableViewCell.h" #import "PBProjectModel.h" @interface PBProjectTableViewCell() @property (nonatomic, weak) UIImageView *projectImageV; @property (nonatomic, weak) UILabel *projectNameL; @property (nonatomic, weak) UILabel *companyL; @property (nonatomic, weak) UILabel *dueDateL; @property (nonatomic, weak) UILabel *simpleL; @property (nonatomic, weak) UILabel *managerL; @property (nonatomic, weak) UIImageView *collectionV; @property (nonatomic, weak) UIImageView *publicV; @property (nonatomic, weak) UIView *overdueLin; @end @implementation PBProjectTableViewCell - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { [self setupUI]; } return self; } - (void)setupUI { UIImageView *projectImageV = [[UIImageView alloc] init]; projectImageV.contentMode = UIViewContentModeScaleAspectFill; [self.contentView addSubview:projectImageV]; [projectImageV mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.contentView).offset(15); make.left.equalTo(self.contentView).offset(15); make.size.mas_equalTo(CGSizeMake(100, 100)); }]; [projectImageV circleViewWithRadius:6]; UILabel *projectNameL = [UILabel z_labelWithText:@"" Color:TitleColor isBold:YES Font:TitleFontSize]; [self.contentView addSubview:projectNameL]; [projectNameL mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(projectImageV); make.left.equalTo(projectImageV.mas_right).offset(8); make.right.equalTo(self.contentView).offset(-15); make.height.equalTo(@18); }]; UILabel *companyL = [UILabel z_labelWithText:@"" Color:PBColor(40, 58, 79) isBold:NO Font:13]; [self.contentView addSubview:companyL]; [companyL mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(projectNameL.mas_bottom).offset(14); make.left.right.equalTo(projectNameL); make.height.equalTo(@15); }]; UILabel *dueDateL = [UILabel z_labelWithText:@"" Color:PBColor(97, 111, 125) isBold:NO Font:13]; [self.contentView addSubview:dueDateL]; [dueDateL mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(companyL.mas_bottom).offset(6); make.left.equalTo(projectNameL); make.height.equalTo(@16); }]; UIView *overdueLin = [[UIView alloc] init]; overdueLin.backgroundColor = PBColor(244, 21, 21); [self.contentView addSubview:overdueLin]; [overdueLin mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(dueDateL); make.height.equalTo(@1); make.left.right.equalTo(dueDateL); }]; UIImageView *avatarBg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"avatar_bg"]]; [self.contentView addSubview:avatarBg]; [avatarBg mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(dueDateL.mas_bottom).offset(6); make.size.mas_equalTo(CGSizeMake(24, 24)); make.left.equalTo(projectNameL); }]; UILabel *simpleL = [UILabel z_labelWithText:@"" Color:[UIColor whiteColor] isBold:YES Font:12]; simpleL.textAlignment = NSTextAlignmentCenter; [self.contentView addSubview:simpleL]; [simpleL mas_makeConstraints:^(MASConstraintMaker *make) { make.top.bottom.left.right.equalTo(avatarBg); }]; UILabel *managerL = [UILabel z_labelWithText:@"" Color:PBColor(97, 111, 125) isBold:NO Font:13]; [self.contentView addSubview:managerL]; [managerL mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(avatarBg); make.left.equalTo(avatarBg.mas_right).offset(4); make.right.equalTo(self.contentView).offset(135); }]; UIImageView *collectionV = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"collect"]]; [self.contentView addSubview:collectionV]; [collectionV mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(avatarBg); make.right.mas_equalTo(self.contentView).offset(-75); make.size.mas_equalTo(CGSizeMake(50, 20)); }]; UIImageView *publicV = [[UIImageView alloc] init]; [self.contentView addSubview:publicV]; [publicV mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.equalTo(avatarBg); make.right.mas_equalTo(self.contentView).offset(-15); make.size.mas_equalTo(CGSizeMake(50, 20)); }]; UIImageView *linV = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"line"]]; [self.contentView addSubview:linV]; [linV mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(projectImageV.mas_right); make.right.equalTo(self.contentView).offset(-15); make.height.equalTo(@1); make.bottom.equalTo(self.contentView); }]; self.projectImageV = projectImageV; self.projectNameL = projectNameL; self.companyL = companyL; self.dueDateL = dueDateL; self.overdueLin = overdueLin; self.managerL = managerL; self.simpleL = simpleL; self.collectionV = collectionV; self.publicV = publicV; } - (void)setProjectModel:(PBProjectModel *)projectModel { _projectModel = projectModel; // NSString *thumbnail = projectModel.thumbnailurl; // NSRange range = [thumbnail rangeOfString:@"base64,"]; // UIImage *image; // if (range.length == 0) { // image = [UIImage imageNamed:@"Project_list_cellImg_bg"]; // }else { // thumbnail = [thumbnail substringFromIndex:range.location + range.length]; // image = [NSString imageDecoding:thumbnail]; // } // self.projectImageV.image = image; [self.projectImageV sd_setImageWithURL:[NSURL URLWithString:projectModel.thumbnailurl] placeholderImage:[UIImage imageNamed:@"logo_unknown"]]; self.projectNameL.text = projectModel.fullname; if ([projectModel.com_FullName isEqualToString:@""] || projectModel.com_FullName == nil) { self.companyL.text = @"<无隶属单位>"; }else { self.companyL.text = projectModel.com_FullName; } if ([projectModel.endTime isEqualToString:@""] || projectModel.endTime == nil) { self.dueDateL.text = @"<未定义到期日期>"; self.dueDateL.textColor = PBColor(97, 111, 125); self.overdueLin.hidden = YES; }else { NSRange tRange = [projectModel.endTime rangeOfString:@" "]; NSString *endTime = [projectModel.endTime substringToIndex:tRange.location]; self.dueDateL.text = [NSString stringWithFormat:@"%@ 到期",endTime]; NSInteger num = [self compareWithDate:endTime]; if (num == 1) { self.dueDateL.textColor = PBColor(244, 21, 21); self.overdueLin.hidden = NO; }else { self.dueDateL.textColor = PBColor(97, 111, 125); self.overdueLin.hidden = YES; } } if (projectModel.manager == nil || [projectModel.manager isEqualToString:@""]) { self.simpleL.text = @""; }else { BOOL isChiness = [self IsChinese:projectModel.manager]; if (isChiness) { self.simpleL.text = [projectModel.manager substringFromIndex:projectModel.manager.length - 1]; }else { self.simpleL.text = [projectModel.manager substringToIndex:1]; } } self.managerL.text = projectModel.manager; if (projectModel.ispublic) { self.publicV.image = [UIImage imageNamed:@"public"]; }else { self.publicV.image = [UIImage imageNamed:@"unpublic"]; } self.collectionV.hidden = YES; } - (BOOL)IsChinese:(NSString *)str { for(int i=0; i< [str length];i++){ int a = [str characterAtIndex:i]; if( a > 0x4e00 && a < 0x9fff){ return YES; } } return NO; } //比较时间大小 - (NSInteger)compareWithDate:(NSString*)bDate{ NSDateFormatter *formatter = [[NSDateFormatter alloc]init]; [formatter setDateFormat:@"yyyy-MM-dd"]; NSString*aDate = [formatter stringFromDate:[NSDate date]]; NSDateFormatter *dateformater = [[NSDateFormatter alloc] init]; [dateformater setDateFormat:@"yyyy-MM-dd"]; NSDate*dta = [[NSDate alloc]init]; NSDate*dtb = [[NSDate alloc]init]; dta = [dateformater dateFromString:aDate]; dtb = [dateformater dateFromString:bDate]; NSComparisonResult result = [dta compare:dtb]; if (result == NSOrderedDescending) { //指定时间 已过期 return 1; }else if(result == NSOrderedAscending){ //指定时间 没过期 return -1; }else{ //刚好时间一样. return 0; } } //正片叠底图片组合模式 - (UIImage *)drawPiucureFrontImage:(UIImage *)personImage backImage:(UIImage *)hatImage blendMode:(CGBlendMode)blendMode alpha:(CGFloat)alpha{ CGSize newSize =[personImage size]; UIGraphicsBeginImageContext(newSize); [personImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height) blendMode:kCGBlendModeNormal alpha:1]; [hatImage drawInRect:CGRectMake(0,0,newSize.width,newSize.height) blendMode:blendMode alpha:alpha]; UIImage*newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage; } @end