#import "KitchenShowFaces.h"
#define?BEGIN_FLAG?@"{"
#define?END_FLAG?@"}"
@implementationKitchenShowFaces
-(void)getImageRange:(NSString*)message?:?(NSMutableArray*)array?{
NSRange?range=[messagerangeOfString:BEGIN_FLAG];
NSRange?range1=[messagerangeOfString:END_FLAG];
//判斷當(dāng)前字符串是否還有表情的標(biāo)志。
if(range.length&&?range1.length)?{
if(range.location>0)?{
[arrayaddObject:[messagesubstringToIndex:range.location]];
[arrayaddObject:[messagesubstringWithRange:NSMakeRange(range.location,?range1.location+1-range.location)]];
NSString*str=[messagesubstringFromIndex:range1.location+1];
[selfgetImageRange:str?:array];
}else{
NSString*nextstr=[messagesubstringWithRange:NSMakeRange(range.location,?range1.location+1-range.location)];
//排除文字是“”的
if(![nextstrisEqualToString:@""])?{
[arrayaddObject:nextstr];
NSString*str=[messagesubstringFromIndex:range1.location+1];
[selfgetImageRange:str?:array];
}else{
return;
}
}
}else{
if(message?!=nil)?{
[arrayaddObject:message];
}
}
}
#define?KFacialSizeWidth??24
#define?KFacialSizeHeight?24
#define?MAX_WIDTH?240
-(UIView*)assembleMessageAtIndex?:?(NSString*)?message
{
NSMutableArray*array?=?[[NSMutableArrayalloc]init];
[selfgetImageRange:message?:array];
UIView*returnView?=?[[UIViewalloc]initWithFrame:CGRectZero];
NSArray*data?=?array;
UIFont*fon?=?[UIFontsystemFontOfSize:14.0f];
CGFloat?upX?=0;
CGFloat?upY?=0;
if(data)?{
for(inti=0;i<[datacount];i++)?{
NSString*str=[dataobjectAtIndex:i];
if([strhasPrefix:BEGIN_FLAG]&&[strhasSuffix:END_FLAG])
{
if(upX?>?MAX_WIDTH)
{
upY?=?upY?+?KFacialSizeHeight;
upX?=0;
}
NSString*imageName=[strsubstringWithRange:NSMakeRange(1,?str.length-2)];
UIImageView*img=[[UIImageViewalloc]initWithImage:[UIImageimageNamed:imageName]];
img.frame=?CGRectMake(upX,?upY,?KFacialSizeWidth,?KFacialSizeHeight);
[returnViewaddSubview:img];
upX=KFacialSizeWidth+upX;
}else{
for(intj?=0;?j?<?[strlength];?j++)?{
NSString*temp?=?[strsubstringWithRange:NSMakeRange(j,1)];
if(upX?>?MAX_WIDTH)
{
upY?=?upY?+?KFacialSizeHeight;
upX?=0;
}
CGSize?size=[tempsizeWithFont:fonconstrainedToSize:CGSizeMake(320,40)];
UILabel*la?=?[[UILabelalloc]initWithFrame:CGRectMake(upX,upY,size.width,size.height)];
la.font=?fon;
la.text=?temp;
[returnViewaddSubview:la];
upX=upX+size.width;
}
}
}
}
returnView.frame=?CGRectMake(0,0,?upX,?upY);//@?需要將該view的尺寸記下,方便以后使用
returnreturnView;
}
@end