IOS-UITableViewCell自适应行高(非AutoLayout)

IOS---UITableViewCell自适应行高(非AutoLayout)

如题所示,本程序是使用非AutoLayout写的UITableView自适应行高,之后笔者将会写一个基于AutoLayout的自适应行高的小demo。
PS:此小程序只适用于刚接触IOS的小朋友,只用做参考,毫无技术性,大神勿喷。

上代码:

//UITableViewCell
#import <UIKit/UIKit.h>

@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;
}