UITableViewCell *myCell=[self tableView:tableView cellForRowAtIndexPath:indexPath];//获取当前indexPath中的cell实例
if( myCell == nil ){
return 0;
}else{
NSLog(@"%f",myCell.frame.size.height);
return myCell.frame.size.height;
}
return 0;
}
上面获取当前indexPath的cell实例会重新申请建立一个实例(意思是个cell实际要创建两个实例)
这样的目的是为了获取cell的frame,如果不这样做也可以在第一部分创建cell的时候,将cell的frame保存在一个私有
变量中,在heightForRowAtIndexPath中访问这个私有变量
通过上述方式可以动态改变UITableViewCell的高度
四、对于一个UILabel,根据其内容计算CGRect
首先要设置UILable的font,比如
tmLabel.font=[UIFont systemFontOfSize:14.0f];
然后使用boundingRectOfSize计算出该尺寸对应的矩形大小,代码如下:
复制代码NSDictionary *attrDic=@{NSFontAttributeName:[UIFont systemFontOfSize:12.0f]};
CGSize labelSize=[text boundingRectWithSize:CGSizeMake(320, 990)
options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading
attributes:attrDic context:nil].size;
CGRect labelRect=CGRectMake(0, 0, labelSize.width, labelSize.height);
现在UILable的rect都可以被计算出来了,那么如果自定义一个UITableViewCell,并且其内部的UILabel高度可变的话
也是可以实现的
五、内部含有可变高度的UILabel的UITableViewCell










