NIMSessionTextContentView.m 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. //
  2. // NIMSessionTextContentView.m
  3. // NIMKit
  4. //
  5. // Created by chris.
  6. // Copyright (c) 2015年 Netease. All rights reserved.
  7. //
  8. #import "NIMSessionTextContentView.h"
  9. #import "M80AttributedLabel+NIMKit.h"
  10. #import "NIMMessageModel.h"
  11. #import "NIMGlobalMacro.h"
  12. #import "UIView+NIM.h"
  13. #import "NIMKit.h"
  14. NSString *const NIMTextMessageLabelLinkData = @"NIMTextMessageLabelLinkData";
  15. @interface NIMSessionTextContentView()<M80AttributedLabelDelegate>
  16. @end
  17. @implementation NIMSessionTextContentView
  18. - (instancetype)initSessionMessageContentView
  19. {
  20. if (self = [super initSessionMessageContentView]) {
  21. _textLabel = [[M80AttributedLabel alloc] initWithFrame:CGRectZero];
  22. _textLabel.delegate = self;
  23. _textLabel.numberOfLines = 0;
  24. _textLabel.lineBreakMode = NSLineBreakByWordWrapping;
  25. _textLabel.backgroundColor = [UIColor clearColor];
  26. [self addSubview:_textLabel];
  27. }
  28. return self;
  29. }
  30. - (void)refresh:(NIMMessageModel *)data{
  31. [super refresh:data];
  32. NSString *text = self.model.message.text;
  33. NIMKitSetting *setting = [[NIMKit sharedKit].config setting:data.message];
  34. self.textLabel.textColor = setting.textColor;
  35. self.textLabel.font = setting.font;
  36. [self.textLabel nim_setText:text];
  37. }
  38. - (void)layoutSubviews{
  39. [super layoutSubviews];
  40. UIEdgeInsets contentInsets = self.model.contentViewInsets;
  41. CGFloat tableViewWidth = self.superview.nim_width;
  42. CGSize contentsize = [self.model contentSize:tableViewWidth];
  43. CGRect labelFrame = CGRectMake(contentInsets.left, contentInsets.top, contentsize.width, contentsize.height);
  44. self.textLabel.frame = labelFrame;
  45. }
  46. #pragma mark - M80AttributedLabelDelegate
  47. - (void)m80AttributedLabel:(M80AttributedLabel *)label
  48. clickedOnLink:(id)linkData{
  49. NIMKitEvent *event = [[NIMKitEvent alloc] init];
  50. event.eventName = NIMKitEventNameTapLabelLink;
  51. event.messageModel = self.model;
  52. event.data = linkData;
  53. [self.delegate onCatchEvent:event];
  54. }
  55. @end