h文件:
#import @interface MyTableCellUtil : NSObject { UIColor *tabletextcolor;//自定義tablecell裏面的自體顏色 } @property(nonatomic,retain) UIColor *tabletextcolor;//自定義tablecell裏面的自體顏色 - (UIView *)tabcellview:(NSString *)text addImage:(UIImage *)myimage; - (UIView *)tabcellview:(NSString *)text; - (UIView *)tabcellview:(NSString *)text addImage:(UIImage *)myimage addusername:(NSString *)username; @end
m文件:
#import "MyTableCellUtil.h"
@implementation MyTableCellUtil
@synthesize tabletextcolor;
-(void)dealloc{
[tabletextcolor release];
[super dealloc];
}
-(id)init{
[super init];
tabletextcolor = [UIColor whiteColor];
return self;
}
//有文字有圖片
- (UIView *)tabcellview:(NSString *)text addImage:(UIImage *)myimage{
//行的總view
UIView *tablecellview = [[UIView alloc] initWithFrame:CGRectZero];
tablecellview.backgroundColor = [UIColor clearColor];
//行的背景圖片
UIImage *bubble = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"2cell" ofType:@"png"]];
UIImageView *bubbleImageView = [[UIImageView alloc] initWithImage:[bubble stretchableImageWithLeftCapWidth:21 topCapHeight:14]];
//行中的文字部分
UIFont *font = [UIFont systemFontOfSize:13];
CGSize size = [text sizeWithFont:font constrainedToSize:CGSizeMake(200.0f, 1000.0f) lineBreakMode: UILineBreakModeWordWrap];
UILabel *bubbleText = [[UILabel alloc] initWithFrame:CGRectMake(110.0f, 10.0f, size.width, size.height)];
bubbleText.backgroundColor = [UIColor clearColor];
bubbleText.font = font;
bubbleText.numberOfLines = 0;
bubbleText.lineBreakMode = UILineBreakModeWordWrap;
bubbleText.text = text;
bubbleText.textColor = self.tabletextcolor;
//行中的圖片部分
UIImageView *oneavatarImageView = [[UIImageView alloc] initWithImage:[myimage stretchableImageWithLeftCapWidth:21 topCapHeight:14]];
if (size.height>=80) {//如果文字的高度大於圖片的高度就設置cell的高度爲文字的高度加上
bubbleImageView.frame = CGRectMake(0, 0, 310, bubbleText.frame.size.height+20);
}else{//否則就設置爲圖片的高度加上14,也就是110,圖片這裏寫死爲96
bubbleImageView.frame = CGRectMake(0, 0, 310, 80);
}
//添加分割線圖片
UIImage *linerview = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"2line" ofType:@"png"]];
UIImageView *lineImageView = [[UIImageView alloc] initWithImage:[linerview stretchableImageWithLeftCapWidth:21 topCapHeight:14]];
lineImageView.frame = CGRectMake(0, bubbleImageView.frame.size.height, 320, 10);
//設置行的總view的frame
tablecellview.frame = CGRectMake(0, 0, 320,bubbleImageView.frame.size.height+lineImageView.frame.size.height );
//設置行中圖片的frame
oneavatarImageView.frame = CGRectMake(10.0f, (bubbleImageView.frame.size.height/2)-39.0f, 78.0f, 78.0f);
[bubbleImageView addSubview:oneavatarImageView];
[oneavatarImageView release];
[bubbleImageView addSubview:bubbleText];
[bubbleText release];
[tablecellview addSubview:bubbleImageView];
[bubbleImageView release];
[tablecellview addSubview:lineImageView];
[lineImageView release];
return [tablecellview autorelease];
}
//只有文字
- (UIView *)tabcellview:(NSString *)text{
//行的總view
UIView *tablecellview = [[UIView alloc] initWithFrame:CGRectZero];
tablecellview.backgroundColor = [UIColor clearColor];
//行的背景圖片
UIImage *bubble = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"2cellTwo" ofType:@"png"]];
UIImageView *bubbleImageView = [[UIImageView alloc] initWithImage:[bubble stretchableImageWithLeftCapWidth:21 topCapHeight:14]];
//行中的文字部分
UIFont *font = [UIFont systemFontOfSize:16];
CGSize size = [text sizeWithFont:font constrainedToSize:CGSizeMake(300.0f, 1000.0f) lineBreakMode: UILineBreakModeWordWrap];
UILabel *bubbleText = [[UILabel alloc] initWithFrame:CGRectMake(10.0f, 10.0f, size.width+10, size.height+10)];
bubbleText.backgroundColor = [UIColor clearColor];
bubbleText.font = font;
bubbleText.numberOfLines = 0;
bubbleText.lineBreakMode = UILineBreakModeWordWrap;
bubbleText.text = text;
bubbleText.textColor = self.tabletextcolor;
//添加分割線圖片
UIImage *linerview = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"2line" ofType:@"png"]];
UIImageView *lineImageView = [[UIImageView alloc] initWithImage:[linerview stretchableImageWithLeftCapWidth:21 topCapHeight:14]];
lineImageView.frame = CGRectMake(0,bubbleText.frame.size.height+20, 320, 1);
//設置行背景圖片的frame
bubbleImageView.frame = CGRectMake(0, 0, 320, bubbleText.frame.size.height+20+lineImageView.frame.size.height);
//設置行的總view的frame
tablecellview.frame = CGRectMake(0, 0, 320,bubbleImageView.frame.size.height);
[bubbleImageView addSubview:bubbleText];
[bubbleText release];
[bubbleImageView addSubview:lineImageView];
[lineImageView release];
[tablecellview addSubview:bubbleImageView];
[bubbleImageView release];
return [tablecellview autorelease];
}
//行程微博的cellview
- (UIView *)tabcellview:(NSString *)text addImage:(UIImage *)myimage addusername:(NSString *)username{
//行的總view
UIView *tablecellview = [[UIView alloc] initWithFrame:CGRectZero];
tablecellview.backgroundColor = [UIColor clearColor];
//行的背景圖片
UIImage *bubble = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"2cell" ofType:@"png"]];
UIImageView *bubbleImageView = [[UIImageView alloc] initWithImage:[bubble stretchableImageWithLeftCapWidth:21 topCapHeight:14]];
//行中的文字部分
UIFont *font = [UIFont systemFontOfSize:13];
CGSize size = [text sizeWithFont:font constrainedToSize:CGSizeMake(200.0f, 1000.0f) lineBreakMode: UILineBreakModeWordWrap];
UILabel *bubbleText = [[UILabel alloc] initWithFrame:CGRectMake(110.0f, 10.0f, size.width, size.height)];
bubbleText.backgroundColor = [UIColor clearColor];
bubbleText.font = font;
bubbleText.numberOfLines = 0;
bubbleText.lineBreakMode = UILineBreakModeWordWrap;
bubbleText.text = text;
bubbleText.textColor = self.tabletextcolor;
//行中的圖片部分
UIImageView *oneavatarImageView = [[UIImageView alloc] initWithImage:[myimage stretchableImageWithLeftCapWidth:21 topCapHeight:14]];
//發表微博的人
UIButton *mybuttonp = [UIButton buttonWithType:UIButtonTypeCustom];
CGRect frame = CGRectMake(160, bubbleText.frame.size.height+20, 150, 20);
mybuttonp.frame = frame;
[mybuttonp setTitle:[NSString stringWithFormat:@"發表人:%@",username] forState:UIControlStateNormal];
// [mybuttonshang addTarget:self action:@selector(buttonViewChat) forControlEvents:UIControlEventTouchUpInside];
mybuttonp.backgroundColor = [UIColor clearColor];
mybuttonp.titleLabel.textColor = self.tabletextcolor;
mybuttonp.titleLabel.font = [UIFont systemFontOfSize:13];
//設置背景圖片的frame
if (size.height+20+mybuttonp.frame.size.height>=80) {//如果文字的高度大於圖片的高度就設置cell的高度爲文字的高度加上
bubbleImageView.frame = CGRectMake(0, 0, 310, bubbleText.frame.size.height+20+mybuttonp.frame.size.height);
}else{//否則就設置爲圖片的高度加上14,也就是110,圖片這裏寫死爲96
bubbleImageView.frame = CGRectMake(0, 0, 310, 80);
}
//添加分割線圖片
UIImage *linerview = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"2line" ofType:@"png"]];
UIImageView *lineImageView = [[UIImageView alloc] initWithImage:[linerview stretchableImageWithLeftCapWidth:21 topCapHeight:14]];
lineImageView.frame = CGRectMake(0, bubbleImageView.frame.size.height, 320, 10);
//設置行的總view的frame
tablecellview.frame = CGRectMake(0, 0, 320,bubbleImageView.frame.size.height+lineImageView.frame.size.height );
//設置行中圖片的frame
oneavatarImageView.frame = CGRectMake(10.0f, (bubbleImageView.frame.size.height/2)-39.0f, 78.0f, 78.0f);
[bubbleImageView addSubview:oneavatarImageView];
[oneavatarImageView release];
[bubbleImageView addSubview:bubbleText];
[bubbleText release];
[bubbleImageView addSubview:mybuttonp];
// [mybuttonp release];
[tablecellview addSubview:bubbleImageView];
[bubbleImageView release];
[tablecellview addSubview:lineImageView];
[lineImageView release];
return [tablecellview autorelease];
}
@end