CSFileDownUpFrameModel.m 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. //
  2. // CSFileDownUpFrameModel.m
  3. // zhuxun
  4. //
  5. // Created by winsoft on 17/6/23.
  6. //
  7. //
  8. #import "CSFileDownUpFrameModel.h"
  9. #import "NSString+Additions.h"
  10. #import "NSDate+Helper.h"
  11. #define FatherViewMaxWidth SCREEN_WIDTH
  12. //SIZE
  13. #define HeaderIconMarginX 5
  14. #define HeaderIconMarginY 10
  15. #define HeaderIconWH 40
  16. #define FileNameMarginHeaderIcon 5
  17. #define FileNameMarginY HeaderIconMarginY
  18. #define ExtensionSwitchMarginFileName 20
  19. #define ExtensionSwitchMarginX_Right 20
  20. #define ExtensionSwitchW 32
  21. #define ExtensionSwitchH 22
  22. #define FileSizeMaxW 150
  23. #define FileSpeedSizeMaxW 100
  24. #define FileCreateTimeMarginFileName 5
  25. #define FileCreateTimeMarginBottom FileNameMarginY
  26. @interface CSFileDownUpFrameModel()
  27. @property (nonatomic , assign, readonly) CGFloat cellHeight_unExtension;
  28. @property (nonatomic , assign, readonly) CGFloat cellHeight_extension;
  29. @end
  30. @implementation CSFileDownUpFrameModel
  31. - (instancetype)initWithCSFileDownUpModel:(CSFileDownUpModel *)csFileDownUpModel
  32. {
  33. if (self = [super init]) {
  34. _csFileDownUpModel = csFileDownUpModel;
  35. [self setData];
  36. [self setFrame];
  37. }
  38. return self;
  39. }
  40. - (void)setData
  41. {
  42. _strServerTime = [NSDate stringFromDate:[NSDate dateWithTimeIntervalSince1970:self.csFileDownUpModel.downUpTimeStamp/1000] withFormat:@"yyyy-MM-dd HH:mm"];
  43. _strUpdateTime = [NSDate stringFromDate:[NSDate dateWithTimeIntervalSince1970:self.csFileDownUpModel.downUpTimeStamp /1000] withFormat:@"yyyy-MM-dd HH:mm"];
  44. _fileSizeStr = [self bitToKb_MbWithBit:self.csFileDownUpModel.size];
  45. }
  46. - (void)setFrame
  47. {
  48. //x 基于 headericon
  49. //select的话是否需要重置.
  50. //header
  51. _headerIconImageViewFrame = CGRectMake(HeaderIconMarginX, HeaderIconMarginY, HeaderIconWH, HeaderIconWH);
  52. CGFloat fileNameMaxLength = FatherViewMaxWidth - 2 * HeaderIconMarginX - HeaderIconWH - ExtensionSwitchMarginFileName - ExtensionSwitchMarginX_Right - ExtensionSwitchW;
  53. CGSize fileNameSize = [self.csFileDownUpModel.name stringgetSizebyMaxWidth:fileNameMaxLength Font:FileNameFont];
  54. //name
  55. _fileNameLabelFrame = CGRectMake(CGRectGetMaxX(_headerIconImageViewFrame) + FileNameMarginHeaderIcon, FileNameMarginY, fileNameSize.width, fileNameSize.height);
  56. CGSize fileTimeSize = [self.strServerTime stringgetSizebyMaxWidth:fileNameMaxLength Font:FileCreateTimeFont];
  57. //time
  58. _fileCreateTimeLabelFrame = CGRectMake(_fileNameLabelFrame.origin.x, CGRectGetMaxY(_fileNameLabelFrame) + FileCreateTimeMarginFileName, fileTimeSize.width, fileTimeSize.height);
  59. _fileProcessSizeLabelFrame = CGRectMake(_fileNameLabelFrame.origin.x, CGRectGetMaxY(_fileNameLabelFrame) + FileCreateTimeMarginFileName, 150, fileTimeSize.height);;
  60. //extensionSwitch
  61. // _fileExtensionSwithImageViewFrame = CGRectMake(FatherViewMaxWidth - ExtensionSwitchW - ExtensionSwitchMarginX_Right, _fileNameLabelFrame.origin.y + 10, ExtensionSwitchW, ExtensionSwitchH);
  62. _fileExtensionSwithImageViewFrame = CGRectMake(FatherViewMaxWidth - ExtensionSwitchW - ExtensionSwitchMarginX_Right, 0, ExtensionSwitchW, CGRectGetMaxY(_fileCreateTimeLabelFrame));
  63. _fileProcessControllerViewFrame = CGRectMake(FatherViewMaxWidth - ControllViewWH - ExtensionSwitchMarginX_Right, _fileNameLabelFrame.origin.y, ControllViewWH, ControllViewWH);
  64. //size
  65. //size
  66. CGSize fileSize = [self.fileSizeStr stringgetSizebyMaxWidth:FileSizeMaxW Font:FileCreateTimeFont];
  67. _fileSizeLabelFrame = CGRectMake(CGRectGetMinX(_fileExtensionSwithImageViewFrame) - fileSize.width, _fileCreateTimeLabelFrame.origin.y, fileSize.width, fileSize.height);
  68. _fileDownUpSpeedLabelFrame = CGRectMake(CGRectGetMinX(_fileProcessControllerViewFrame) - FileSpeedSizeMaxW, _fileCreateTimeLabelFrame.origin.y, FileSpeedSizeMaxW, fileSize.height);
  69. //fileextensionView
  70. _fileExtensionViewFrame = CGRectMake(0, CGRectGetMaxY(_fileCreateTimeLabelFrame) + FileCreateTimeMarginBottom, FatherViewMaxWidth, FileExtensionViewH);
  71. //eight
  72. _cellHeight_unExtension = CGRectGetMaxY(_fileCreateTimeLabelFrame) + FileCreateTimeMarginBottom;
  73. _cellHeight_extension = CGRectGetMaxY(_fileExtensionViewFrame);
  74. }
  75. - (NSString *)bitToKb_MbWithBit:(NSInteger)bit
  76. {
  77. #warning show = mb,,,true = kb
  78. double downLoadedSize = bit * 1.00f/1024 * 1.00f;
  79. NSString *downloadSizeStr = nil;
  80. if (downLoadedSize>1024 * 1024) {
  81. CGFloat dSize = downLoadedSize / (1024 * 1024 * 1.0f);
  82. downloadSizeStr = [NSString stringWithFormat:@"%.2lf Gb",floor(dSize*100) / 100 ];
  83. }else if (downLoadedSize>1024) {
  84. CGFloat dSize = downLoadedSize / 1024 * 1.0f;
  85. downloadSizeStr = [NSString stringWithFormat:@"%.2lf Mb",floor(dSize*100) / 100 ];
  86. }else
  87. {
  88. downloadSizeStr = [NSString stringWithFormat:@"%.2lf Kb",floor(downLoadedSize*100) / 100];
  89. }
  90. return downloadSizeStr;
  91. }
  92. - (void)setIsFileExtensionOP:(BOOL)isFileExtensionOP
  93. {
  94. _isFileExtensionOP = isFileExtensionOP;
  95. if (isFileExtensionOP) {
  96. _fileExtensionViewFrame = CGRectMake(0, CGRectGetMaxY(_fileCreateTimeLabelFrame) + FileCreateTimeMarginBottom, FatherViewMaxWidth, FileExtensionViewH);
  97. }else _fileExtensionViewFrame = CGRectMake(0, CGRectGetMaxY(_fileCreateTimeLabelFrame) + FileCreateTimeMarginBottom, FatherViewMaxWidth, 0);;
  98. }
  99. - (CGFloat)cellHeight
  100. {
  101. if (_isFileExtensionOP) {
  102. return ceil(_cellHeight_extension);
  103. }else return ceil(_cellHeight_unExtension);
  104. }
  105. @end