CSFileFrameModel.m 4.9 KB

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