YOUPAIOCBarrageWalkBannerCell.m 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. //
  2. // YOUPAIOCBarrageWalkBannerCell.m
  3. // OCBarrage
  4. //
  5. // Created by QMTV on 2017/8/25.
  6. // Copyright © 2017年 LFC. All rights reserved.
  7. //
  8. #define ImageWidth 89.0
  9. #define ImageHeight 57.0
  10. #import "YOUPAIOCBarrageWalkBannerCell.h"
  11. @implementation YOUPAIOCBarrageWalkBannerCell
  12. - (instancetype)init {
  13. self = [super init];
  14. if (self) {
  15. [self addSubviews];
  16. }
  17. return self;
  18. }
  19. - (void)prepareForReuse {
  20. [super prepareForReuse];
  21. //因为在点击的时候被改为了红色, 所以在重用的时候, 要重置一下颜色
  22. self.textLabel.backgroundColor = [UIColor clearColor];
  23. }
  24. - (void)addSubviews {
  25. [self addSubview:self.leftImageView];
  26. [self addSubview:self.middleImageView];
  27. [self addSubview:self.rightImageView];
  28. }
  29. - (void)youpaifupdateSubviewsData {
  30. [super youpaifupdateSubviewsData];
  31. [self.leftImageView setImage:[UIImage imageNamed:@"chaoren_left"]];
  32. [self.middleImageView setBackgroundColor:[UIColor colorWithRed:1.00 green:0.83 blue:0.26 alpha:1.00]];
  33. [self.rightImageView setImage:[UIImage imageNamed:@"chaoren_right"]];
  34. }
  35. - (void)youpaiflayoutContentSubviews {
  36. [super youpaiflayoutContentSubviews];
  37. CGFloat leftImageViewX = 0.0;
  38. CGFloat leftImageViewY = 0.0;
  39. CGFloat leftImageViewW = ImageWidth;
  40. CGFloat leftImageViewH = ImageHeight;
  41. self.leftImageView.frame = CGRectMake(leftImageViewX, leftImageViewY, leftImageViewW, leftImageViewH);
  42. CGFloat middleImageViewW = CGRectGetWidth(self.textLabel.bounds);
  43. CGFloat middleImageViewH = 19;
  44. CGFloat middleImageViewX = CGRectGetMaxX(self.leftImageView.bounds) - 1.0;
  45. CGFloat middleImageViewY = (leftImageViewH - middleImageViewH)/2;
  46. self.middleImageView.frame = CGRectMake(middleImageViewX, middleImageViewY, middleImageViewW, middleImageViewH);
  47. self.textLabel.center = self.middleImageView.center;
  48. CGFloat rightImageViewX = CGRectGetMaxX(self.textLabel.frame) - 1.0;
  49. CGFloat rightImageViewY = leftImageViewY;
  50. CGFloat rightImageViewW = CGRectGetWidth(self.rightImageView.frame) > 2?CGRectGetWidth(self.rightImageView.frame):22.0;
  51. CGFloat rightImageViewH = ImageHeight;
  52. self.rightImageView.frame = CGRectMake(rightImageViewX, rightImageViewY, rightImageViewW, rightImageViewH);
  53. }
  54. - (void)youpaifconvertContentToImage {
  55. UIImage *contentImage = [self.layer youpaifconvertContentToImageWithSize:CGSizeMake(CGRectGetMaxX(self.rightImageView.frame), CGRectGetMaxY(self.rightImageView.frame))];
  56. [self.layer setContents:(__bridge id)contentImage.CGImage];
  57. }
  58. - (void)removeSubViewsAndSublayers {
  59. //如果不要删除leftImageView, middleImageView, rightImageView, textLabel, 只需重写这个方法并留空就可以了.
  60. //比如: 你想在这个cell被点击的时候, 修改文本颜色
  61. }
  62. #pragma mark ---- setter
  63. - (void)setBarrageDescriptor:(YOUPAIOCBarrageDescriptor *)barrageDescriptor {
  64. [super setBarrageDescriptor:barrageDescriptor];
  65. self.walkBannerDescriptor = (YOUPAIOCBarrageWalkBannerDescriptor *)barrageDescriptor;
  66. }
  67. #pragma mark ---- getter
  68. - (UIImageView *)leftImageView {
  69. if (!_leftImageView) {
  70. _leftImageView = [[UIImageView alloc] init];
  71. _leftImageView.contentMode = UIViewContentModeScaleAspectFit;
  72. }
  73. return _leftImageView;
  74. }
  75. - (UIImageView *)middleImageView {
  76. if (!_middleImageView) {
  77. _middleImageView = [[UIImageView alloc] init];
  78. _middleImageView.contentMode = UIViewContentModeScaleAspectFit;
  79. }
  80. return _middleImageView;
  81. }
  82. - (UIImageView *)rightImageView {
  83. if (!_rightImageView) {
  84. _rightImageView = [[UIImageView alloc] init];
  85. _rightImageView.contentMode = UIViewContentModeScaleAspectFit;
  86. }
  87. return _rightImageView;
  88. }
  89. @end