原创 UItableViewCell自适应高度

1、封装一个nsobject 对象

@interface RkyMyControl : NSObject

+(UIButton*)createButtonWithimageName:(NSString*)imageName bgImageName:(NSString*)bgImageName title:(NSString*)title color:(UIColor *)color;

+(UILabel*)createLabelWithFont:(float)font Text:(NSString*)text Color:(UIColor *)color;

+(CGSize)sizeWithString:(NSString *)string font:(UIFont *)font andwidth:(CGFloat)width;

@end

2、实现这些方法

#import "RkyMyControl.h"

@implementation RkyMyControl

+(UIButton*)createButtonWithimageName:(NSString*)imageName bgImageName:(NSString*)bgImageName title:(NSString*)title color:(UIColor *)color {

UIButton*button=[UIButton buttonWithType:UIButtonTypeCustom];

if (imageName) {

[button setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];

}

if (bgImageName) {

[button setBackgroundImage:[UIImage imageNamed:bgImageName] forState:UIControlStateNormal];

}

if (title) {

[button setTitle:title forState:UIControlStateNormal];

[button setTitle:title forState:UIControlStateDisabled];

[button setTitleColor:color forState:UIControlStateNormal];

}

return button;

}

/*

options:NSStringDrawingTruncatesLastVisibleLine| NSStringDrawingUsesLineFragmentOrigin| NSStringDrawingUsesFontLeading//采用换行模式

*/

+(CGSize)sizeWithString:(NSString *)string font:(UIFont *)font andwidth:(CGFloat)width

{

CGRect rect = [string boundingRectWithSize:CGSizeMake(width, 800)//限制最大的宽度和高度

options: NSStringDrawingUsesLineFragmentOrigin//采用换行模式

attributes:@{NSFontAttributeName: font}//传入的字体字典

context:nil];

return rect.size;

}

+(UILabel*)createLabelWithFont:(float)font Text:(NSString*)text Color:(UIColor *)color

{

//[[UILabel appearance]setTextColor:[UIColor redColor]];

UILabel*label=[[UILabel alloc]init];

//设置字体大小

label.font=[UIFont systemFontOfSize:font];

label.textColor=color;

//设置对齐方式

label.textAlignment=NSTextAlignmentLeft;

//设置行数

label.numberOfLines=0;

//设置折行方式  NSLineBreakByCharWrapping NSLineBreakByWordWrapping

label.lineBreakMode=NSLineBreakByWordWrapping;

//设置阴影的颜色

// label.shadowColor=[UIColor yellowColor];

//设置阴影的偏移

// label.shadowOffset=CGSizeMake(2, 2);

//设置文字

if (text) {

label.text=text;

}

return label;

}

3、使用方法说明

//计算_activityTitle.height的高度  重新排列控件的frame

-(void)layoutSubView:(NSString *)titleStr

{

CGFloat titleHeight=[RkyMyControl sizeWithString:titleStr font:titleFont andwidth:titleWidth].height;

_activityTitle.height=titleHeight;

_activitytime.top=CGRectGetMaxY(_activityTitle.frame)+10;

_activityaddress.top=CGRectGetMaxY(_activitytime.frame)+5;

_activitymember.top=CGRectGetMaxY(_activityaddress.frame)+5;

lineL.top=CGRectGetMaxY(_activitymember.frame)+10;

}

在uitableView :-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;

返回cell 的高度

IWActive *activeM=_commactivityArrary[indexPath.row];

CGFloat titleHeight=[RkyMyControl sizeWithString:activeM.title font:[UIFont systemFontOfSize:14] andwidth:150].height;

CGFloat cellHeight=titleHeight+75;

return cellHeight;

UItableViewCell文字自适应的高度就大功告成了!是不是很简单啊!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值