123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- //
- // NTESSessionSnapchatContentView.m
- // NIM
- //
- // Created by amao on 7/2/15.
- // Copyright (c) 2015 Netease. All rights reserved.
- //
- #import "NTESSessionSnapchatContentView.h"
- #import "NTESSnapchatAttachment.h"
- #import "NTESSessionUtil.h"
- #import "UIView+NTES.h"
- NSString *const NIMDemoEventNameOpenSnapPicture = @"NIMDemoEventNameOpenSnapPicture";
- NSString *const NIMDemoEventNameCloseSnapPicture = @"NIMDemoEventNameCloseSnapPicture";
- @interface NTESSessionSnapchatContentView()
- @property (nonatomic,strong) UIImageView *imageView;
- @property (nonatomic,strong) UILabel *label;
- @property (nonatomic,strong) UILongPressGestureRecognizer *longpressGesture;
- @end
- @implementation NTESSessionSnapchatContentView
- - (instancetype)initSessionMessageContentView{
- self = [super initSessionMessageContentView];
- if (self) {
- _longpressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(onLongPressDown:)];
- [self addGestureRecognizer:_longpressGesture];
- _imageView = [[UIImageView alloc] initWithFrame:CGRectZero];
- [self addSubview:_imageView];
- self.bubbleImageView.hidden = YES;//图片背景自带气泡。。
-
- _label = [[UILabel alloc] initWithFrame:CGRectZero];
- _label.font = [UIFont systemFontOfSize:13.f];
- _label.textColor = [UIColor grayColor];
- _label.text = @"按住查看";
- [_label sizeToFit];
- [self addSubview:_label];
- }
- return self;
- }
- - (void)refresh:(NIMMessageModel *)model{
- [super refresh:model];
- NIMCustomObject * customObject = (NIMCustomObject*)model.message.messageObject;
- NTESSnapchatAttachment *attachment = (NTESSnapchatAttachment *)customObject.attachment;
- self.imageView.image = attachment.showCoverImage;
- self.label.hidden = attachment.isFired;
- self.longpressGesture.enabled = !attachment.isFired;
- }
- - (void)layoutSubviews{
- [super layoutSubviews];
- NIMCustomObject * customObject = (NIMCustomObject*)self.model.message.messageObject;
- NTESSnapchatAttachment *attachment = (NTESSnapchatAttachment *)customObject.attachment;
- UIEdgeInsets contentInsets = self.model.contentViewInsets;
- UIImage *showCoverImage = attachment.showCoverImage;
- CGRect imageViewFrame = CGRectMake(contentInsets.left, contentInsets.top, showCoverImage.size.width, showCoverImage.size.height);
- self.imageView.frame = imageViewFrame;
- CGFloat customSnapMessageImageRightToText = 5.f;
- CGFloat customSnapMessageTextBottom = 20.f;
- self.label.left = self.model.message.isOutgoingMsg ? self.imageView.left - customSnapMessageImageRightToText - self.label.width : self.imageView.right + customSnapMessageImageRightToText;
- self.label.bottom = self.imageView.bottom - customSnapMessageTextBottom ;
-
- }
- - (void)onLongPressDown:(UILongPressGestureRecognizer *)recognizer
- {
- NIMMessage *message = self.model.message;
- if (!message.isReceivedMsg && message.deliveryState != NIMMessageDeliveryStateDeliveried) {
- return;
- }
- if (recognizer.state != UIGestureRecognizerStateBegan) {
- return;
- }
- recognizer.enabled = NO;
- [self goOpen];
- }
- - (void)onTouchUpInside:(id)sender{
- if (self.presentedView) {
- [self goClose];
- }
- }
- - (void)onTouchUpOutside:(id)sender{
- if (self.presentedView) {
- [self goClose];
- }
- }
- - (void)goOpen{
- if ([self.delegate respondsToSelector:@selector(onCatchEvent:)]) {
- NIMKitEvent *event = [[NIMKitEvent alloc] init];
- event.eventName = NIMDemoEventNameOpenSnapPicture;
- event.messageModel = self.model;
- event.data = self;
- [self.delegate onCatchEvent:event];
- }
- }
- - (void)goClose{
- if ([self.delegate respondsToSelector:@selector(onCatchEvent:)]) {
- NIMKitEvent *event = [[NIMKitEvent alloc] init];
- event.eventName = NIMDemoEventNameCloseSnapPicture;
- event.messageModel = self.model;
- event.data = self;
- [self.delegate onCatchEvent:event];
- }
- }
- @end
|