如題所示,本程序是使用非AutoLayout寫的UITableView自適應行高,之後筆者將會寫一個基於AutoLayout的自適應行高的小demo。
PS:此小程序只適用於剛接觸IOS的小朋友,只用做參考,毫無技術性,大神勿噴。
上代碼:
//UITableViewCell
#import
@interface commentaryCell : UITableViewCell
@property (retain, nonatomic) UILabel *userID;
@property (retain, nonatomic) UILabel *date;
@property (retain, nonatomic) UILabel *commentary;
-(void)setContent:(NSString *)userid_dic :(NSString *)date_dic :(NSString *)comment_dic;
@end
#import "commentaryCell.h"
float width;
float height;
NSString *commentaryStr;
@implementation commentaryCell
@synthesize userID;
@synthesize date;
@synthesize commentary;
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self.contentView.backgroundColor = [UIColor whiteColor];
[self createView];
}
return self;
}
-(void)createView{
width = self.contentView.frame.size.width;
height = self.contentView.frame.size.height;
//用戶ID
userID = [[UILabel alloc] initWithFrame:CGRectMake(width*0.05, height*0.3, width*0.3, height*0.3)];
userID.font = [UIFont systemFontOfSize:14];
[userID setTextColor:[UIColor colorWithRed:85.0/255.0 green:85.0/255.0 blue:85.0/255.0 alpha:0.6]];
[self.contentView addSubview:userID];
//時間圖標
//時間
date = [[UILabel alloc] initWithFrame:CGRectMake(width*0.4, height*0.3, width*0.5, height*0.3)];
date.font = [UIFont systemFontOfSize:14];
[date setTextColor:[UIColor colorWithRed:85.0/255.0 green:85.0/255.0 blue:85.0/255.0 alpha:0.6]];
[self.contentView addSubview:date];
//評論
commentary = [[UILabel alloc] init];
[commentary setNumberOfLines:0];
commentary.font = [UIFont systemFontOfSize:16];
[commentary setTextColor:[UIColor colorWithRed:85.0/255.0 green:85.0/255.0 blue:85.0/255.0 alpha:1]];
[self.contentView addSubview:commentary];
}
-(void)setContent:(NSString *)userid_dic :(NSString *)date_dic :(NSString *)comment_dic{
userID.text = userid_dic;
date.text = date_dic;
[commentary setNumberOfLines:0];
commentary.text = comment_dic;
commentary.font = [UIFont systemFontOfSize:16];
CGSize commentSize = [self returnSize:commentary.text font:commentary.font];
[commentary setFrame:CGRectMake(width*0.05, 41, commentSize.width, commentSize.height)];
}
//返回Label的Size
-(CGSize)returnSize:(NSString *)text font:(UIFont *)font{
float width = [UIScreen mainScreen].bounds.size.width;
float height = [UIScreen mainScreen].bounds.size.height;
CGSize _Size = CGSizeMake(width*0.9, height);
CGSize Size = [text sizeWithFont:font constrainedToSize:_Size lineBreakMode:NSLineBreakByWordWrapping];
return Size;
}