uploadFileBottomView.m 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. //
  2. // uploadFileBottomView.m
  3. // 隐私保护
  4. //
  5. // Created by xd h on 2023/11/10.
  6. //
  7. #import "uploadFileBottomView.h"
  8. #import "TZAssetModel+imageData.h"
  9. @interface uploadFileBottomView ()
  10. @property(nonatomic,strong)UILabel *selectNumLabel;
  11. @property(nonatomic,strong)UILabel *uploadFileRoutelabel;
  12. @property(nonatomic,strong)UIButton *uploadButon;
  13. @end
  14. @implementation uploadFileBottomView
  15. - (id)initWithFrame:(CGRect)frame{
  16. self = [super initWithFrame:frame];
  17. [self setBackgroundColor:[UIColor whiteColor]];
  18. [self drawAnyView];
  19. return self;
  20. }
  21. - (void)drawAnyView{
  22. _selectNumLabel = [[UILabel alloc] init];
  23. _selectNumLabel.font = [UIFont boldSystemFontOfSize:16.0];
  24. _selectNumLabel.textColor = [UIColor blackColor];
  25. [self addSubview:_selectNumLabel];
  26. [_selectNumLabel mas_makeConstraints:^(MASConstraintMaker *make) {
  27. make.left.mas_equalTo(15);
  28. make.top.mas_equalTo(10);
  29. make.right.mas_equalTo(-110);
  30. make.height.mas_equalTo(20);
  31. }];
  32. //设置即得标题
  33. self.indexPathsForSelectedItems = [NSMutableArray new];
  34. _uploadFileRoutelabel = [[UILabel alloc] init];
  35. _uploadFileRoutelabel.font = [UIFont systemFontOfSize:14.0];
  36. _uploadFileRoutelabel.textColor = [UIColor hwColor:@"#959799" alpha:1.0];
  37. NSString *savePath = [HWDataManager getStringWithKey:Const_photo_upload_default_path];
  38. if(!savePath||savePath.length == 0){
  39. savePath = Const_default_upload_path;
  40. }
  41. NSString *uploadDefaultPath = savePath;
  42. if([uploadDefaultPath containsString:@"mnt/media_rw"]){
  43. uploadDefaultPath = [uploadDefaultPath stringByReplacingOccurrencesOfString:@"mnt/media_rw" withString:NSLocalizedString(@"disk_Extra_default_tip",nil)];
  44. }
  45. else if([uploadDefaultPath containsString:@"storage/emulated/0"]){
  46. uploadDefaultPath = [uploadDefaultPath stringByReplacingOccurrencesOfString:@"storage/emulated/0" withString:NSLocalizedString(@"disk_phone_default_tip",nil)];
  47. }
  48. else if([uploadDefaultPath containsString:@"sdcard"]){
  49. uploadDefaultPath = [uploadDefaultPath stringByReplacingOccurrencesOfString:@"sdcard" withString:NSLocalizedString(@"disk_phone_default_tip",nil)];
  50. }
  51. _uploadFileRoutelabel.text = [[NSString alloc] initWithFormat:@"%@: %@",NSLocalizedString(@"File_upload_path_tip",nil),uploadDefaultPath];
  52. [self addSubview:_uploadFileRoutelabel];
  53. [_uploadFileRoutelabel mas_makeConstraints:^(MASConstraintMaker *make) {
  54. make.left.mas_equalTo(15);
  55. make.top.mas_equalTo(_selectNumLabel.mas_bottom).offset(10);
  56. make.right.mas_equalTo(-110);
  57. make.height.mas_equalTo(20);
  58. }];
  59. //图片上传
  60. NSString* curImgUploadStr = [[NSString alloc] initWithFormat:@"%@ %@",@" ",NSLocalizedString(@"my_set_no_File_upload",nil)];
  61. // gradient
  62. CAGradientLayer *gl_But = [CAGradientLayer layer];
  63. gl_But.frame = CGRectMake(0,0,88.f,40.f);
  64. gl_But.startPoint = CGPointMake(0, 0.5);
  65. gl_But.endPoint = CGPointMake(1, 0.5);
  66. gl_But.colors = @[(__bridge id)HW0CDEFDColor.CGColor, (__bridge id)HW058DFBColor.CGColor];
  67. gl_But.locations = @[@(0), @(1.0f)];
  68. gl_But.cornerRadius = 8;
  69. UIButton *imageUploadBut = [[UIButton alloc] init];
  70. [imageUploadBut setImage:[UIImage imageNamed:@"upload_file_white_100"] forState:UIControlStateNormal];
  71. [imageUploadBut setTitle:curImgUploadStr forState:UIControlStateNormal];
  72. [imageUploadBut setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  73. imageUploadBut.titleLabel.font = [UIFont boldSystemFontOfSize:13.0];
  74. imageUploadBut.tag = 2;
  75. [imageUploadBut addTarget:self action:@selector(didClickButFun:) forControlEvents:UIControlEventTouchUpInside];
  76. [self addSubview:imageUploadBut];
  77. [imageUploadBut.layer insertSublayer:gl_But atIndex:0];
  78. [imageUploadBut bringSubviewToFront:imageUploadBut.imageView];
  79. self.uploadButon = imageUploadBut;
  80. //imageUploadBut.backgroundColor = [UIColor redColor];
  81. [imageUploadBut mas_makeConstraints:^(MASConstraintMaker *make) {
  82. make.right.mas_equalTo(-15);
  83. make.top.mas_equalTo(10);
  84. make.width.mas_equalTo(88);
  85. make.height.mas_equalTo(40);
  86. }];
  87. imageUploadBut.enabled = NO;
  88. imageUploadBut.alpha = 0.5;
  89. }
  90. #pragma mark 数据处理
  91. - (void)setIndexPathsForSelectedItems:(NSMutableArray *)indexPathsForSelectedItems
  92. {
  93. BOOL isCanUpload = YES;
  94. _indexPathsForSelectedItems = indexPathsForSelectedItems;
  95. if(!_indexPathsForSelectedItems){
  96. _indexPathsForSelectedItems = [NSMutableArray new];
  97. }
  98. //TZAssetModel imageData (以字节为单位)
  99. NSUInteger allImageData = 0;
  100. for (TZAssetModel* model in _indexPathsForSelectedItems) {
  101. // if(model.type == TZAssetModelMediaTypeVideo){
  102. // allImageData += [model.videoData length];
  103. // }
  104. // else{
  105. // allImageData += [model.imageData length];
  106. // }
  107. allImageData += model.totalBytes;
  108. }
  109. if(allImageData > self.available && self.available > 1024){
  110. isCanUpload = NO;
  111. }
  112. allImageData /= 1024;
  113. NSString *byteStr = nil;
  114. NSString *unitStr = @"KB";
  115. if(allImageData < 1024){
  116. byteStr = [[NSString alloc] initWithFormat:@"%ld",allImageData];
  117. }
  118. else if( allImageData >= 1024 && allImageData < 1024*1024){
  119. byteStr = [[NSString alloc] initWithFormat:@"%.1f",allImageData/1024.0];
  120. unitStr = @"MB";
  121. }
  122. else{
  123. byteStr = [[NSString alloc] initWithFormat:@"%.2f",allImageData/1024.0/1024.0];
  124. unitStr = @"G";
  125. }
  126. if(!_availableStorage){
  127. _availableStorage = @"--";
  128. }
  129. NSString *curStr1 = [NSString stringWithFormat:@"已选%ld项",_indexPathsForSelectedItems.count];
  130. NSString *curStr2 = [NSString stringWithFormat:@"(%@%@,%@)",byteStr,unitStr,_availableStorage];
  131. NSString *totalStr = [[NSString alloc] initWithFormat:@"%@ %@",curStr1,curStr2];
  132. NSMutableAttributedString *noteStr = [[NSMutableAttributedString alloc] initWithString:totalStr];
  133. NSRange redRange = NSMakeRange([totalStr rangeOfString:curStr2].location, [totalStr rangeOfString:curStr2].length);
  134. UIColor *noteColor =[UIColor hwColor:@"#959799" alpha:1.0];
  135. if(!isCanUpload){
  136. noteColor = [UIColor redColor];
  137. }
  138. [noteStr addAttribute:NSForegroundColorAttributeName value:noteColor range:redRange];
  139. [noteStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:14.0] range:redRange];
  140. // 设置行间距
  141. NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
  142. [paragraphStyle setLineSpacing:5]; //设置行间距
  143. [noteStr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [totalStr length])];
  144. _selectNumLabel.attributedText = noteStr;
  145. if(_indexPathsForSelectedItems.count > 0 && isCanUpload){
  146. self.uploadButon.enabled = YES;
  147. self.uploadButon.alpha = 1;
  148. }
  149. else
  150. {
  151. self.uploadButon.enabled = NO;
  152. self.uploadButon.alpha = 0.5;
  153. }
  154. }
  155. #pragma mark 按钮点击
  156. - (void)didClickButFun:(UIButton*)but
  157. {
  158. if(_didClickUploadFile)
  159. {
  160. _didClickUploadFile();
  161. }
  162. }
  163. @end