JXBlogRemindCell.m 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. //
  2. // JXBlogRemindCell.m
  3. // shiku_im
  4. //
  5. // Created by p on 2017/7/4.
  6. // Copyright © 2017年 Reese. All rights reserved.
  7. //
  8. #import "JXBlogRemindCell.h"
  9. #import "JXVideoPlayer.h"
  10. #import "JXAudioPlayer.h"
  11. @interface JXBlogRemindCell ()
  12. @property (nonatomic, strong) JXImageView *headImageView;
  13. @property (nonatomic, strong) UILabel *nameLabel;
  14. @property (nonatomic, strong) UILabel *commentLabel;
  15. @property (nonatomic, strong) UIImageView *praiseImageView;
  16. @property (nonatomic, strong) UILabel *timeLabel;
  17. @property (nonatomic, strong) UILabel *descLabel;
  18. @property (nonatomic, strong) UIImageView *descImageView;
  19. @property (nonatomic, strong) UIView *lineView;
  20. @property (nonatomic, strong) JXVideoPlayer *player;
  21. @property (nonatomic, strong) JXAudioPlayer *audioPlayer;
  22. @property (nonatomic, strong) UIButton *pauseBtn;
  23. @end
  24. @implementation JXBlogRemindCell
  25. - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
  26. self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
  27. if (self) {
  28. _headImageView = [[JXImageView alloc] initWithFrame:CGRectMake(15, 10, 50, 50)];
  29. _headImageView.layer.cornerRadius = _headImageView.frame.size.width / 2;
  30. _headImageView.layer.masksToBounds = YES;
  31. [self.contentView addSubview:_headImageView];
  32. _nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(CGRectGetMaxX(_headImageView.frame) + 10, _headImageView.frame.origin.y, 100, 20)];
  33. _nameLabel.font = SYSFONT(16);
  34. _nameLabel.textColor = HEXCOLOR(0x5B6998);
  35. [self.contentView addSubview:_nameLabel];
  36. _commentLabel = [[UILabel alloc] initWithFrame:CGRectMake(CGRectGetMaxX(_headImageView.frame) + 10, CGRectGetMaxY(_nameLabel.frame) + 5, JX_SCREEN_WIDTH - CGRectGetMaxX(_headImageView.frame) - 10 - 85, 20)];
  37. _commentLabel.font = SYSFONT(15);
  38. _commentLabel.textColor = [UIColor grayColor];
  39. _commentLabel.numberOfLines = 0;
  40. [self.contentView addSubview:_commentLabel];
  41. _praiseImageView = [[UIImageView alloc] initWithFrame:CGRectMake(_commentLabel.frame.origin.x, _commentLabel.frame.origin.y + 2, 15, 15)];
  42. _praiseImageView.image = [UIImage imageNamed:@"weibo_thumb"];
  43. [self.contentView addSubview:_praiseImageView];
  44. _timeLabel = [[UILabel alloc] initWithFrame:CGRectMake(CGRectGetMaxX(_headImageView.frame) + 10, CGRectGetMaxY(_commentLabel.frame) + 5, 100, 20)];
  45. _timeLabel.font = SYSFONT(14.0);
  46. _timeLabel.textColor = [UIColor grayColor];
  47. [self.contentView addSubview:_timeLabel];
  48. _descLabel = [[UILabel alloc] initWithFrame:CGRectMake(JX_SCREEN_WIDTH - 75, _headImageView.frame.origin.y, 70, 70)];
  49. _descLabel.font = SYSFONT(14.0);
  50. _descLabel.textColor = [UIColor grayColor];
  51. _descLabel.numberOfLines = 0;
  52. [self.contentView addSubview:_descLabel];
  53. _descImageView = [[UIImageView alloc] initWithFrame:CGRectMake(JX_SCREEN_WIDTH - 85, _headImageView.frame.origin.y, 70, 70)];
  54. [self.contentView addSubview:_descImageView];
  55. _lineView = [[UIView alloc] initWithFrame:CGRectMake(0, 85 - LINE_WH, JX_SCREEN_WIDTH, LINE_WH)];
  56. _lineView.backgroundColor = THE_LINE_COLOR;
  57. [self.contentView addSubview:_lineView];
  58. _commentLabel.hidden = YES;
  59. _praiseImageView.hidden = YES;
  60. _descLabel.hidden = YES;
  61. _descImageView.hidden = YES;
  62. }
  63. return self;
  64. }
  65. -(void)doRefresh:(JXBlogRemind *)br {
  66. [g_server getHeadImageLarge:br.fromUserId userName:br.fromUserName imageView:_headImageView];
  67. _nameLabel.text = br.fromUserName;
  68. if (br.type == kWCMessageTypeWeiboPraise) {
  69. _praiseImageView.hidden = NO;
  70. _commentLabel.hidden = YES;
  71. }else {
  72. _praiseImageView.hidden = YES;
  73. _commentLabel.hidden = NO;
  74. if (br.type == kWCMessageTypeWeiboComment) {
  75. _commentLabel.text = br.content;
  76. if (br.toUserName.length > 0) {
  77. _commentLabel.text = [NSString stringWithFormat:@"%@%@: %@", Localized(@"JX_Reply"),br.toUserName, br.content];
  78. NSRange range = [_commentLabel.text rangeOfString:br.toUserName];
  79. NSMutableAttributedString *att = [[NSMutableAttributedString alloc] initWithString:_commentLabel.text];
  80. [att addAttribute:NSForegroundColorAttributeName value:HEXCOLOR(0x5B6998) range:range];
  81. _commentLabel.attributedText = att;
  82. }
  83. }
  84. else {
  85. _commentLabel.text = Localized(@"JX_AndMentionYouAtTheAameTime");
  86. }
  87. CGSize size = [_commentLabel.text boundingRectWithSize:CGSizeMake(_commentLabel.frame.size.width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:_commentLabel.font} context:nil].size;
  88. if (size.height > 20) {
  89. _commentLabel.frame = CGRectMake(_commentLabel.frame.origin.x, _commentLabel.frame.origin.y, _commentLabel.frame.size.width, size.height);
  90. _timeLabel.frame = CGRectMake(CGRectGetMaxX(_headImageView.frame) + 10, CGRectGetMaxY(_commentLabel.frame) + 5, 100, 20);
  91. _lineView.frame = CGRectMake(0, CGRectGetMaxY(_timeLabel.frame) + 5, JX_SCREEN_WIDTH, LINE_WH);
  92. }else {
  93. _commentLabel.frame = CGRectMake(_commentLabel.frame.origin.x, _commentLabel.frame.origin.y, _commentLabel.frame.size.width,20);
  94. _timeLabel.frame = CGRectMake(CGRectGetMaxX(_headImageView.frame) + 10, CGRectGetMaxY(_commentLabel.frame) + 5, 100, 20);
  95. _lineView.frame = CGRectMake(0, 85 - LINE_WH, JX_SCREEN_WIDTH, LINE_WH);
  96. }
  97. }
  98. self.timeLabel.text = [TimeUtil getTimeStrStyle1:[br.timeSend timeIntervalSince1970]];
  99. switch (br.msgType) {
  100. case 1:{
  101. self.descImageView.hidden = YES;
  102. self.descLabel.hidden = NO;
  103. _pauseBtn.hidden = YES;
  104. self.descLabel.text = br.url;
  105. }
  106. break;
  107. case 2:{
  108. self.descImageView.hidden = NO;
  109. self.descLabel.hidden = YES;
  110. _pauseBtn.hidden = YES;
  111. [self.descImageView sd_setImageWithURL:[NSURL URLWithString:br.url] placeholderImage:[UIImage imageNamed:@"avatar_normal"]];
  112. }
  113. break;
  114. case 3:{
  115. self.descImageView.hidden = NO;
  116. self.descLabel.hidden = YES;
  117. _pauseBtn.hidden = YES;
  118. [g_server getHeadImageLarge:g_myself.userId userName:g_myself.userNickname imageView:self.descImageView];
  119. _audioPlayer = [[JXAudioPlayer alloc] initWithParent:self.descImageView];
  120. _audioPlayer.isOpenProximityMonitoring = NO;
  121. }
  122. break;
  123. case 4:{
  124. self.descImageView.hidden = NO;
  125. self.descLabel.hidden = YES;
  126. if (!_pauseBtn) {
  127. _pauseBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 35, 35)];
  128. _pauseBtn.center = CGPointMake(self.descImageView.frame.size.width/2,self.descImageView.frame.size.height/2);
  129. [_pauseBtn setBackgroundImage:[UIImage imageNamed:@"playvideo"] forState:UIControlStateNormal];
  130. [self.descImageView addSubview:_pauseBtn];
  131. }
  132. _pauseBtn.hidden = NO;
  133. [FileInfo getFirstImageFromVideo:br.url imageView:self.descImageView];
  134. // [self.descImageView sd_setImageWithURL:[NSURL URLWithString:br.url] placeholderImage:[UIImage imageNamed:@"avatar_normal"]];
  135. // _player = [[JXVideoPlayer alloc] initWithParent:self.descImageView];
  136. }
  137. break;
  138. default:
  139. break;
  140. }
  141. }
  142. - (void)awakeFromNib {
  143. [super awakeFromNib];
  144. // Initialization code
  145. }
  146. - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
  147. [super setSelected:selected animated:animated];
  148. // Configure the view for the selected state
  149. }
  150. @end