77 lines
2.3 KiB
Objective-C
77 lines
2.3 KiB
Objective-C
//
|
||
// NTESSessionCustomConfig.m
|
||
// NIM
|
||
//
|
||
// Created by chris on 15/7/24.
|
||
// Copyright (c) 2015年 Netease. All rights reserved.
|
||
//
|
||
|
||
#import "NTESSessionCustomLayoutConfig.h"
|
||
#import "NTESCustomAttachmentDefines.h"
|
||
#import "NTESSessionUtil.h"
|
||
#import "NTESSessionCustomContentConfig.h"
|
||
|
||
@interface NTESSessionCustomLayoutConfig()
|
||
@property (nonatomic,strong) NTESSessionCustomContentConfig *contentConfig; //所有的自定义消息都使用这个对象,重用
|
||
@end
|
||
|
||
@implementation NTESSessionCustomLayoutConfig
|
||
|
||
- (instancetype)init{
|
||
self = [super init];
|
||
if (self) {
|
||
_contentConfig = [[NTESSessionCustomContentConfig alloc] init];
|
||
}
|
||
return self;
|
||
}
|
||
|
||
|
||
|
||
- (CGSize)contentSize:(NIMMessageModel *)model cellWidth:(CGFloat)width{
|
||
id<NIMSessionContentConfig> config = [self sessionContentConfig:model.message];
|
||
return [config contentSize:width message:model.message];
|
||
}
|
||
|
||
- (NSString *)cellContent:(NIMMessageModel *)model{
|
||
id<NIMSessionContentConfig> config = [self sessionContentConfig:model.message];
|
||
return [config cellContent:model.message];
|
||
}
|
||
|
||
- (UIEdgeInsets)contentViewInsets:(NIMMessageModel *)model
|
||
{
|
||
id<NIMSessionContentConfig> config = [self sessionContentConfig:model.message];
|
||
return [config contentViewInsets:model.message];
|
||
}
|
||
|
||
|
||
#pragma mark - misc
|
||
- (id<NIMSessionContentConfig>)sessionContentConfig:(NIMMessage *)message{
|
||
// self.contentConfig.message = message;
|
||
return self.contentConfig;
|
||
}
|
||
|
||
#pragma mark - 支持类型配置
|
||
+ (BOOL)supportMessage:(NIMMessage *)message{
|
||
NSArray *supportType = [NTESSessionCustomLayoutConfig supportAttachmentType];
|
||
NIMCustomObject *object = message.messageObject;
|
||
return [supportType indexOfObject:NSStringFromClass([object.attachment class])] != NSNotFound;
|
||
}
|
||
|
||
+ (NSArray *)supportAttachmentType
|
||
{
|
||
static NSArray *types = nil;
|
||
static dispatch_once_t onceTypeToken;
|
||
//所对应的contentView只适用于cellClass为NTESSessionChatCell的情况,其他cellClass则需要自己实现布局
|
||
dispatch_once(&onceTypeToken, ^{
|
||
types = @[
|
||
@"NTESJanKenPonAttachment",
|
||
@"NTESSnapchatAttachment",
|
||
@"NTESChartletAttachment",
|
||
@"NTESWhiteboardAttachment"
|
||
];
|
||
});
|
||
return types;
|
||
}
|
||
|
||
@end
|