// TTSingleLineView.h
#import
#import "TTLineView.h"
#define kChatRoomSingleLineSendFontSize (18.0f)
@interface TTSingleLineView : TTLineView
+ (TTSingleLineView *)singleLineView:(NSArray *)views;
@end
//TTSingleLineView.m
#import "TTSingleLineView.h"
#define kChatRoomSingleLineDefaultHeight (30.0f)
@implementation TTSingleLineView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
// self.backgroundColor = [UIColor colorWithWhite:0.4f alpha:0.4f];
}
return self;
}
+ (TTSingleLineView *)singleLineView:(NSArray *)views
{
TTSingleLineView *slv = [[TTSingleLineView alloc] initWithFrame:CGRectZero];
[slv chatRoomSingleLineView:views];
return slv;
}
- (CGFloat)chatRoomSingleLineView:(NSArray *)array
{
CGFloat lineWidth = 0.0f;
for (NSDictionary *dict in array)
{
switch ([self contentType:dict])
{
case kChatRoomText:
{
NSString *contentText = [self chatContentText:dict];
CGFloat fontSize = [self chatContentTextFont:dict];
CGFloat textWidth = [self getStringWidth:contentText size:fontSize];
ChatRoomFontColorMode colorMode = [[dict valueForKey:kChatTextColorTypeKeyName] integerValue];
UIColor *color = [self chatTextColor:colorMode];
UILabel *l = [[UILabel alloc] initWithFrame:CGRectMake(lineWidth,
0.0f,
textWidth,
kChatRoomSingleLineDefaultHeight)];
l.backgroundColor = [UIColor clearColor];
l.font = kFontOfSize(fontSize);
l.text = contentText;
l.textColor = color;
l.lineBreakMode = NSLineBreakByCharWrapping;
[self addSubview:l];
lineWidth += textWidth;
}
break;
case kChatRoomRemoteDynamicImage:
case kChatRoomRemoteStaticImage:
{
NSString *imageStr = [self chatImagePath:dict];
CGFloat imageWidth = [self chatImageWidth:dict];
CGFloat imageHeight = [self chatImageHeight:dict];
CGFloat imagePaddingX = [self chatImagePaddingX:dict];
CGFloat imagePaddingY = [self chatImagePaddingY:dict];
imageStr = [imageStr substringFromIndex:kChatCutOffContentRemoteStillImageType.length];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:
CGRectMake(lineWidth + imagePaddingX,
0.0f + imagePaddingY,
imageWidth,
imageHeight)];
[imageView setImageWithURL:[NSURL URLWithString:imageStr] placeholderImage:nil];
[self addSubview:imageView];
lineWidth += imageWidth;
lineWidth += imagePaddingX;
}
break;
case kChatRoomLocalDynamicImage:
case kChatRoomLocalStaticImage:
{
NSString *imageStr = [self chatImagePath:dict];
CGFloat imageWidth = [self chatImageWidth:dict];
CGFloat imageHeight = [self chatImageHeight:dict];
CGFloat imagePaddingX = [self chatImagePaddingX:dict];
CGFloat imagePaddingY = [self chatImagePaddingY:dict];
imageStr = [imageStr substringFromIndex:kChatCutOffContentRemoteStillImageType.length];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:
CGRectMake(lineWidth + imagePaddingX,
0.0f + imagePaddingY,
imageWidth,
imageHeight)];
imageView.image = kImageNamed(imageStr);
[self addSubview:imageView];
lineWidth += imageWidth;
lineWidth += imagePaddingX;
}
break;
default:
break;
}
}
self.frame = CGRectMake(0.0f, 0.0f, lineWidth, kChatRoomS