// // downloadFileBottomView.m // 隐私保护 // // Created by xd h on 2024/1/8. // #import "downloadFileBottomView.h" #import #include @interface downloadFileBottomView () { long long diskfreeSpace;//iphone 空间 BOOL isCanDown; } @property(nonatomic,strong)UILabel *selectNumLabel; @property(nonatomic,strong)UILabel *uploadFileRoutelabel; @property(nonatomic,strong)UIButton *uploadButon; @end @implementation downloadFileBottomView - (id)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; [self setBackgroundColor:[UIColor whiteColor]]; [self drawAnyView]; _availableStorage = [self freeDiskSpaceInBytes]; return self; } - (NSString *)freeDiskSpaceInBytes{ struct statfs buf; unsigned long long freeSpace = -1; if (statfs("/var", &buf) >= 0) { freeSpace = (unsigned long long)(buf.f_bsize * buf.f_bavail); diskfreeSpace = freeSpace; } NSString *str = [NSString stringWithFormat:@"%0.2f GB",freeSpace/1024.0/1024.0/1024.0]; //NSString *str11 = [NSString stringWithFormat:@"%0.2f GB",freeSpace/1000.0/1000.0/1000.0]; return str; } - (void)drawAnyView{ _selectNumLabel = [[UILabel alloc] init]; _selectNumLabel.font = [UIFont boldSystemFontOfSize:16.0]; _selectNumLabel.textColor = [UIColor blackColor]; [self addSubview:_selectNumLabel]; [_selectNumLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(15); make.top.mas_equalTo(10); make.right.mas_equalTo(-110); make.height.mas_equalTo(20); }]; //设置即得标题 self.indexPathsForSelectedItems = [NSMutableArray new]; _uploadFileRoutelabel = [[UILabel alloc] init]; _uploadFileRoutelabel.font = [UIFont systemFontOfSize:14.0]; _uploadFileRoutelabel.textColor = [UIColor hwColor:@"#959799" alpha:1.0]; _uploadFileRoutelabel.text = NSLocalizedString(@"File_download_Path_default",nil); [self addSubview:_uploadFileRoutelabel]; [_uploadFileRoutelabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_equalTo(15); make.top.mas_equalTo(_selectNumLabel.mas_bottom).offset(10); make.right.mas_equalTo(-110); make.height.mas_equalTo(20); }]; //图片上传 NSString* curImgUploadStr = [[NSString alloc] initWithFormat:@"%@ %@",@"",NSLocalizedString(@"my_set_no_File_download",nil)]; // gradient CAGradientLayer *gl_But = [CAGradientLayer layer]; gl_But.frame = CGRectMake(0,0,88.f,40.f); gl_But.startPoint = CGPointMake(0, 0.5); gl_But.endPoint = CGPointMake(1, 0.5); gl_But.colors = @[(__bridge id)HW0CDEFDColor.CGColor, (__bridge id)HW058DFBColor.CGColor]; gl_But.locations = @[@(0), @(1.0f)]; gl_But.cornerRadius = 8; UIButton *imageUploadBut = [[UIButton alloc] init]; [imageUploadBut setImage:[UIImage imageNamed:@"donwload_file_white_100"] forState:UIControlStateNormal]; [imageUploadBut setTitle:curImgUploadStr forState:UIControlStateNormal]; [imageUploadBut setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; imageUploadBut.titleLabel.font = [UIFont boldSystemFontOfSize:13.0]; imageUploadBut.tag = 2; [imageUploadBut addTarget:self action:@selector(didClickButFun:) forControlEvents:UIControlEventTouchUpInside]; [self addSubview:imageUploadBut]; [imageUploadBut.layer insertSublayer:gl_But atIndex:0]; [imageUploadBut bringSubviewToFront:imageUploadBut.imageView]; self.uploadButon = imageUploadBut; //imageUploadBut.backgroundColor = [UIColor redColor]; //多国语言适配 NSString *languageCode = [NSLocale preferredLanguages][0]; if([languageCode rangeOfString:@"ja-"].location != NSNotFound) { imageUploadBut.titleLabel.font = [UIFont systemFontOfSize:10.0]; } [imageUploadBut mas_makeConstraints:^(MASConstraintMaker *make) { make.right.mas_equalTo(-10); make.top.mas_equalTo(10); make.width.mas_equalTo(98); make.height.mas_equalTo(40); }]; imageUploadBut.enabled = NO; imageUploadBut.alpha = 0.5; } #pragma mark 数据处理 - (void)setIndexPathsForSelectedItems:(NSMutableArray *)indexPathsForSelectedItems { isCanDown = YES; _indexPathsForSelectedItems = indexPathsForSelectedItems; if(!_indexPathsForSelectedItems){ _indexPathsForSelectedItems = [NSMutableArray new]; } //TZAssetModel imageData (以字节为单位) NSUInteger allImageData = 0; for (couldPhoneFileModel* model in _indexPathsForSelectedItems) { allImageData += model.length; } if(diskfreeSpace < allImageData){ isCanDown = NO; } allImageData /= 1024; NSString *byteStr = nil; NSString *unitStr = @"KB"; if(allImageData < 1024){ byteStr = [[NSString alloc] initWithFormat:@"%ld",allImageData]; } else if( allImageData >= 1024 && allImageData < 1024*1024){ byteStr = [[NSString alloc] initWithFormat:@"%.2f",allImageData/1024.0]; unitStr = @"MB"; } else{ byteStr = [[NSString alloc] initWithFormat:@"%.2f",allImageData/1024.0/1024.0]; unitStr = @"G"; } if(!_availableStorage){ _availableStorage = @"--"; } NSString *curStr1 = [NSString stringWithFormat:@"已选%ld项",_indexPathsForSelectedItems.count]; NSString *curStr2 = [NSString stringWithFormat:@"(%@%@,%@)",byteStr,unitStr,_availableStorage]; NSString *totalStr = [[NSString alloc] initWithFormat:@"%@ %@",curStr1,curStr2]; NSMutableAttributedString *noteStr = [[NSMutableAttributedString alloc] initWithString:totalStr]; NSRange redRange = NSMakeRange([totalStr rangeOfString:curStr2].location, [totalStr rangeOfString:curStr2].length); UIColor *noteColor =[UIColor hwColor:@"#959799" alpha:1.0]; if(!isCanDown){ noteColor = [UIColor redColor]; } [noteStr addAttribute:NSForegroundColorAttributeName value:noteColor range:redRange]; [noteStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:14.0] range:redRange]; // 设置行间距 NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; [paragraphStyle setLineSpacing:5]; //设置行间距 [noteStr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [totalStr length])]; _selectNumLabel.attributedText = noteStr; if(_indexPathsForSelectedItems.count > 0 && isCanDown){ self.uploadButon.enabled = YES; self.uploadButon.alpha = 1; } else { self.uploadButon.enabled = NO; self.uploadButon.alpha = 0.5; } } #pragma mark 按钮点击 - (void)didClickButFun:(UIButton*)but { if(_didClickDownloadFile) { _didClickDownloadFile(); } } @end