You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
3.3 KiB
95 lines
3.3 KiB
![]()
2 years ago
|
//
|
||
|
// XHMessageBubbleFactory.m
|
||
|
// MessageDisplayExample
|
||
|
//
|
||
|
// Created by HUAJIE-1 on 14-4-25.
|
||
|
// Copyright (c) 2014年 嗨,我是曾宪华(@xhzengAIB),曾加入YY Inc.担任高级移动开发工程师,拍立秀App联合创始人,热衷于简洁、而富有理性的事物 QQ:543413507 主页:http://zengxianhua.com All rights reserved.
|
||
|
//
|
||
|
|
||
|
#import "XHMessageBubbleFactory.h"
|
||
|
#import "XHMacro.h"
|
||
|
#import "XHConfigurationHelper.h"
|
||
|
|
||
|
@implementation XHMessageBubbleFactory
|
||
|
|
||
|
+ (UIImage *)bubbleImageViewForType:(XHBubbleMessageType)type
|
||
|
style:(XHBubbleImageViewStyle)style
|
||
|
meidaType:(XHBubbleMessageMediaType)mediaType {
|
||
|
NSString *messageTypeString = @"icon_";
|
||
|
|
||
|
// switch (style) {
|
||
|
// case XHBubbleImageViewStyleWeChat:
|
||
|
// // 类似微信的
|
||
|
// messageTypeString = @"weChatBubble";
|
||
|
// break;
|
||
|
// default:
|
||
|
// break;
|
||
|
// }
|
||
|
|
||
|
switch (type) {
|
||
|
case XHBubbleMessageTypeSending:
|
||
|
// 发送
|
||
|
messageTypeString = [messageTypeString stringByAppendingString:@"chat_right"];
|
||
|
break;
|
||
|
case XHBubbleMessageTypeReceiving:
|
||
|
// 接收
|
||
|
messageTypeString = [messageTypeString stringByAppendingString:@"chat_left"];
|
||
|
break;
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
// switch (mediaType) {
|
||
|
// case XHBubbleMessageMediaTypePhoto:
|
||
|
// case XHBubbleMessageMediaTypeVideo:
|
||
|
// messageTypeString = [messageTypeString stringByAppendingString:@"_Solid"];
|
||
|
// break;
|
||
|
// case XHBubbleMessageMediaTypeText:
|
||
|
// case XHBubbleMessageMediaTypeVoice:
|
||
|
// messageTypeString = [messageTypeString stringByAppendingString:@"_Solid"];
|
||
|
// break;
|
||
|
// default:
|
||
|
// break;
|
||
|
// }
|
||
|
|
||
|
if (type == XHBubbleMessageTypeReceiving) {
|
||
|
NSString *receivingSolidImageName = [[XHConfigurationHelper appearance].messageTableStyle objectForKey:kXHMessageTableReceivingSolidImageNameKey];
|
||
|
if (receivingSolidImageName) {
|
||
|
messageTypeString = receivingSolidImageName;
|
||
|
}
|
||
|
} else {
|
||
|
NSString *sendingSolidImageName = [[XHConfigurationHelper appearance].messageTableStyle objectForKey:kXHMessageTableSendingSolidImageNameKey];
|
||
|
if (sendingSolidImageName) {
|
||
|
messageTypeString = sendingSolidImageName;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
UIImage *bublleImage = ImageName_(messageTypeString);
|
||
|
UIEdgeInsets bubbleImageEdgeInsets = [self bubbleImageEdgeInsetsWithStyle:style type:type];
|
||
|
UIImage *edgeBubbleImage = XH_STRETCH_IMAGE(bublleImage, bubbleImageEdgeInsets);
|
||
|
return edgeBubbleImage;
|
||
|
}
|
||
|
|
||
|
+ (UIEdgeInsets)bubbleImageEdgeInsetsWithStyle:(XHBubbleImageViewStyle)style
|
||
|
type:(XHBubbleMessageType)type
|
||
|
{
|
||
|
UIEdgeInsets edgeInsets;
|
||
|
// switch (style) {
|
||
|
// case XHBubbleImageViewStyleWeChat:
|
||
|
// // 类似微信的
|
||
|
// edgeInsets = UIEdgeInsetsMake(30, 28, 85, 28);
|
||
|
// break;
|
||
|
// default:
|
||
|
// break;
|
||
|
// }
|
||
|
|
||
|
if (type == XHBubbleMessageTypeSending) {
|
||
|
edgeInsets = UIEdgeInsetsMake(30, 5, 10, 20);
|
||
|
}else{
|
||
|
edgeInsets = UIEdgeInsetsMake(30, 8, 10, 12);
|
||
|
}
|
||
|
return edgeInsets;
|
||
|
}
|
||
|
|
||
|
@end
|