WFCUImageCell.m 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. //
  2. // ImageCell.m
  3. // WFChat UIKit
  4. //
  5. // Created by WF Chat on 2017/9/2.
  6. // Copyright © 2017年 WildFireChat. All rights reserved.
  7. //
  8. #import "WFCUImageCell.h"
  9. #import <WFChatClient/WFCChatClient.h>
  10. @interface WFCUImageCell ()
  11. @property(nonatomic, strong) UIImageView *shadowMaskView;
  12. @end
  13. @implementation WFCUImageCell
  14. + (CGSize)sizeForClientArea:(WFCUMessageModel *)msgModel withViewWidth:(CGFloat)width {
  15. WFCCImageMessageContent *imgContent = (WFCCImageMessageContent *)msgModel.message.content;
  16. CGSize size = imgContent.thumbnail.size;
  17. if (size.height > width || size.width > width) {
  18. float scale = MIN(width/size.height, width/size.width);
  19. size = CGSizeMake(size.width * scale, size.height * scale);
  20. }
  21. return size;
  22. }
  23. - (void)setModel:(WFCUMessageModel *)model {
  24. [super setModel:model];
  25. WFCCImageMessageContent *imgContent = (WFCCImageMessageContent *)model.message.content;
  26. self.thumbnailView.frame = self.bubbleView.bounds;
  27. self.thumbnailView.image = imgContent.thumbnail;
  28. }
  29. - (UIImageView *)thumbnailView {
  30. if (!_thumbnailView) {
  31. _thumbnailView = [[UIImageView alloc] init];
  32. [self.bubbleView addSubview:_thumbnailView];
  33. }
  34. return _thumbnailView;
  35. }
  36. - (void)setMaskImage:(UIImage *)maskImage{
  37. [super setMaskImage:maskImage];
  38. if (_shadowMaskView) {
  39. [_shadowMaskView removeFromSuperview];
  40. }
  41. _shadowMaskView = [[UIImageView alloc] initWithImage:maskImage];
  42. CGRect frame = CGRectMake(self.bubbleView.frame.origin.x - 1, self.bubbleView.frame.origin.y - 1, self.bubbleView.frame.size.width + 2, self.bubbleView.frame.size.height + 2);
  43. _shadowMaskView.frame = frame;
  44. [self.contentView addSubview:_shadowMaskView];
  45. [self.contentView bringSubviewToFront:self.bubbleView];
  46. }
  47. @end