FBLeftAndRightCell.m 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. //
  2. // FBLeftAndRightCell.m
  3. // FreedomBoat
  4. //
  5. // Created by 刘惠萍 on 2019/11/14.
  6. // Copyright © 2019 刘惠萍. All rights reserved.
  7. //
  8. #import "FBLeftAndRightCell.h"
  9. @implementation FBLeftAndRightCell
  10. #pragma mark 懒加载
  11. - (UIImageView *)iconImg{
  12. if (_iconImg == nil) {
  13. _iconImg = [UIImageView new];
  14. _iconImg.widthHeight = XY(W(19),W(19));
  15. }
  16. return _iconImg;
  17. }
  18. - (UILabel *)labelTitle{
  19. if (_labelTitle == nil) {
  20. _labelTitle = [UILabel new];
  21. _labelTitle.textColor = COLOR_LABEL;
  22. _labelTitle.fontNum = F(15);
  23. _labelTitle.numberOfLines = 0;
  24. _labelTitle.lineSpace = 0;
  25. }
  26. return _labelTitle;
  27. }
  28. - (UILabel *)labelPrice{
  29. if (_labelPrice == nil) {
  30. _labelPrice = [UILabel new];
  31. _labelPrice.fontNum = F(11);
  32. _labelPrice.numberOfLines = 1;
  33. _labelPrice.lineSpace = 0;
  34. _labelPrice.textColor = COLOR_DETAIL;
  35. }
  36. return _labelPrice;
  37. }
  38. - (UILabel *)labelSubTitle{
  39. if (_labelSubTitle == nil) {
  40. _labelSubTitle = [UILabel new];
  41. _labelSubTitle.textColor = COLOR_LABEL;
  42. _labelSubTitle.fontNum = F(13);
  43. _labelSubTitle.numberOfLines = 1;
  44. _labelSubTitle.lineSpace = 0;
  45. }
  46. return _labelSubTitle;
  47. }
  48. - (UIImageView *)rightImg{
  49. if (_rightImg == nil) {
  50. _rightImg = [UIImageView new];
  51. _rightImg.image = [UIImage imageNamed:IMAGE_ARROW_RIGHT];
  52. _rightImg.widthHeight = XY(W(7),W(13));
  53. }
  54. return _rightImg;
  55. }
  56. #pragma mark 初始化
  57. - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
  58. self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
  59. if (self) {
  60. self.contentView.backgroundColor = [UIColor clearColor];
  61. self.backgroundColor = [UIColor clearColor];
  62. self.selectionStyle = UITableViewCellSelectionStyleNone;
  63. [self.contentView addSubview:self.iconImg];
  64. [self.contentView addSubview:self.labelTitle];
  65. [self.contentView addSubview:self.labelPrice];
  66. [self.contentView addSubview:self.rightImg];
  67. [self.contentView addSubview:self.labelSubTitle];
  68. [self.contentView addTarget:self action:@selector(cellClick)];
  69. self.clipsToBounds = true;
  70. self.contentView.userInteractionEnabled = true;
  71. }
  72. return self;
  73. }
  74. #pragma mark 刷新cell
  75. - (void)resetCellWithModel:(ModelBaseData *)model{
  76. [self.contentView removeSubViewWithTag:TAG_LINE];//移除线
  77. //刷新view
  78. self.model = model;
  79. //hide view dequeue
  80. self.labelPrice.hidden = true;
  81. self.rightImg.hidden = false;
  82. self.labelSubTitle.hidden = false;
  83. self.rightImg.hidden = false;
  84. self.height = W(44);
  85. //config data with model
  86. [self resetViewGeneral];
  87. }
  88. #pragma mark reset general view
  89. - (void)resetViewGeneral{
  90. //icon
  91. if (self.model.image) {
  92. self.iconImg.image = self.model.image;
  93. self.iconImg.widthHeight = XY(W(self.model.image.size.width), W(self.model.image.size.height)) ;
  94. }else{
  95. self.iconImg.image = [UIImage imageNamed:self.model.imageName];
  96. self.iconImg.widthHeight = XY(W(18),W(17));
  97. }
  98. self.iconImg.leftCenterY = XY(W(15),self.height/2);
  99. //label
  100. [self.labelTitle fitTitle:UnPackStr(self.model.string) variable:0];
  101. self.labelTitle.leftCenterY = self.model.image||self.model.imageName ?XY(W(8)+self.iconImg.right,self.iconImg.centerY):XY(W(15),self.height/2);
  102. [self.labelPrice fitTitle:UnPackStr(self.model.alertString) variable:0];
  103. self.labelPrice.leftCenterY = XY(self.labelTitle.right+W(5), self.labelTitle.centerY);
  104. self.labelPrice.hidden=self.model.hidelineState;
  105. //arrow
  106. self.rightImg.rightCenterY = XY(SCREEN_WIDTH-W(15),self.iconImg.centerY);
  107. self.rightImg.hidden = self.model.hideSubState;
  108. //subtitle
  109. [self.labelSubTitle fitTitle:UnPackStr(self.model.subString) variable:self.rightImg.left - W(15) - self.labelPrice.right - W(20)];
  110. self.labelSubTitle.rightCenterY = XY(self.rightImg.left-W(13),self.iconImg.centerY);
  111. self.labelSubTitle.hidden=self.model.hideState;
  112. }
  113. #pragma mark cell click
  114. - (void)cellClick{
  115. if (self.model.blockClick) {
  116. self.model.blockClick(self.model);
  117. }
  118. }
  119. @end