CSFileFrameModel.m 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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 FileSizeW 50
  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. }
  49. - (void)setFrame
  50. {
  51. //x 基于 headericon
  52. //select的话是否需要重置.
  53. //header
  54. _headerIconImageViewFrame = CGRectMake(HeaderIconMarginX, HeaderIconMarginY, HeaderIconWH, HeaderIconWH);
  55. CGFloat fileNameMaxLength = FatherViewMaxWidth - 2 * HeaderIconMarginX - HeaderIconWH - ExtensionSwitchMarginFileName - ExtensionSwitchMarginX_Right - ExtensionSwitchW;
  56. CGSize fileNameSize = [self.fileModel.name stringgetSizebyMaxWidth:fileNameMaxLength Font:FileNameFont];
  57. //name
  58. _fileNameLabelFrame = CGRectMake(CGRectGetMaxX(_headerIconImageViewFrame) + FileNameMarginHeaderIcon, FileNameMarginY, fileNameSize.width, fileNameSize.height);
  59. CGSize fileTimeSize = [self.strServerTime stringgetSizebyMaxWidth:fileNameMaxLength Font:FileCreateTimeFont];
  60. //time
  61. _fileCreateTimeLabelFrame = CGRectMake(_fileNameLabelFrame.origin.x, CGRectGetMaxY(_fileNameLabelFrame) + FileCreateTimeMarginFileName, fileTimeSize.width, fileTimeSize.height);
  62. //extensionSwitch
  63. // _fileExtensionSwithImageViewFrame = CGRectMake(FatherViewMaxWidth - ExtensionSwitchW - ExtensionSwitchMarginX_Right, _fileNameLabelFrame.origin.y + 10, ExtensionSwitchW, ExtensionSwitchH);
  64. _fileExtensionSwithImageViewFrame = CGRectMake(FatherViewMaxWidth - ExtensionSwitchW - ExtensionSwitchMarginX_Right, 0, ExtensionSwitchW, CGRectGetMaxY(_fileCreateTimeLabelFrame));
  65. //size
  66. _fileSizeLabelFrame = CGRectMake(CGRectGetMinX(_fileExtensionSwithImageViewFrame) - FileSizeW, _fileCreateTimeLabelFrame.origin.y, FileSizeW, _fileCreateTimeLabelFrame.size.height);
  67. //fileextensionView
  68. _fileExtensionViewFrame = CGRectMake(0, CGRectGetMaxY(_fileCreateTimeLabelFrame) + FileCreateTimeMarginBottom, FatherViewMaxWidth, FileExtensionViewH);
  69. //eight
  70. _cellHeight_unExtension = CGRectGetMaxY(_fileCreateTimeLabelFrame) + FileCreateTimeMarginBottom;
  71. _cellHeight_extension = CGRectGetMaxY(_fileExtensionViewFrame);
  72. }
  73. - (void)setIsFileExtensionOP:(BOOL)isFileExtensionOP
  74. {
  75. _isFileExtensionOP = isFileExtensionOP;
  76. if (isFileExtensionOP) {
  77. _fileExtensionViewFrame = CGRectMake(0, CGRectGetMaxY(_fileCreateTimeLabelFrame) + FileCreateTimeMarginBottom, FatherViewMaxWidth, FileExtensionViewH);
  78. }else _fileExtensionViewFrame = CGRectMake(0, CGRectGetMaxY(_fileCreateTimeLabelFrame) + FileCreateTimeMarginBottom, FatherViewMaxWidth, 0);;
  79. }
  80. - (CGFloat)cellHeight
  81. {
  82. if (_isFileExtensionOP) {
  83. return ceil(_cellHeight_extension);
  84. }else return ceil(_cellHeight_unExtension);
  85. }
  86. @end