ios tableview 自动计算cell高度
来源:互联网 发布:淘宝网肚皮舞服装新款 编辑:程序博客网 时间:2024/05/22 17:30
效果图:
#import "TFTableViewController.h"@interface TFTableViewCell ()@property(nonatomic,copy)NSString *messageText;@end@implementation TFTableViewCell- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{ self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; if (!self) { return nil; } self.textLabel.adjustsFontSizeToFitWidth = YES; self.textLabel.textColor = [UIColor darkGrayColor]; self.detailTextLabel.font = [UIFont systemFontOfSize:12.0f]; self.detailTextLabel.numberOfLines = 0; self.selectionStyle = UITableViewCellSelectionStyleGray; return self;}- (void)setPost:(NSString *)messageStr{ self.messageText = messageStr; self.textLabel.text = @"123"; self.detailTextLabel.text = messageStr; [self setNeedsLayout];}//自动计算cell的高度+ (CGFloat)heightForCellWithPost:(NSString *)text { return (CGFloat)fmaxf(70.0f, (float)[self detailTextHeight:text] + 45.0f);}//自动计算cell的高度+ (CGFloat)detailTextHeight:(NSString *)text { CGRect rectToFit = [text boundingRectWithSize:CGSizeMake(240.0f, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName: [UIFont systemFontOfSize:12.0f]} context:nil]; return rectToFit.size.height;}#pragma mark - UIView- (void)layoutSubviews { [super layoutSubviews]; self.imageView.frame = CGRectMake(10.0f, 10.0f, 50.0f, 50.0f); self.textLabel.frame = CGRectMake(70.0f, 6.0f, 240.0f, 20.0f); CGRect detailTextLabelFrame = CGRectOffset(self.textLabel.frame, 0.0f, 25.0f); CGFloat calculatedHeight = [[self class] detailTextHeight:self.messageText]; detailTextLabelFrame.size.height = calculatedHeight; self.detailTextLabel.frame = detailTextLabelFrame;}@end@interface TFTableViewController ()<UITableViewDataSource,UITableViewDelegate>@property(nonatomic, strong)NSArray *messageArray;@property(nonatomic, strong)UITableView *tfTableView;@property(nonatomic,strong)UIRefreshControl *refreshControl;@end@implementation TFTableViewController#pragma mark - life cycle- (void)viewDidLoad{ [super viewDidLoad]; self.messageArray = @[@"qwesrdtyuiop[ertyuioezrxtcyvuireztrxytcyvuijq阿尔塞知道热血沸腾超高压我色泽都热血沸腾超高压色的染发痛噶色qwesrdtyuiop[ertyuioezrxtcyvuireztrxytcyvuijq阿尔塞知道热血沸腾超高压我色泽都热血沸腾超高压色的染发痛噶色调调",@"qwesrdtyuiop[ertyuioezrxtcyvuireztrxytcyvuijq阿尔塞知道热血沸腾超高压我色泽都热血沸腾超高压色的染发痛噶色调",@"qwesrdtyuiop[ertyuioezrxtcyvuireztrxytcyvuijq阿尔塞知道热血沸腾超高压我色泽都热血沸腾超高压色的染发痛噶色qwesrdtyuiop[ertyuioezrxtcyvuireztrxytcyvuijq阿尔塞知道热血沸腾超高压我色泽都热血沸腾超高压色的染发痛噶色调qwesrdtyuiop[ertyuioezrxtcyvuireztrxytcyvuijq阿尔塞知道热血沸腾超高压我色泽都热血沸腾超高压色的染发痛噶色调调",@"qwesrdtyuiop[ertyuioezrxtcyvuireztrxytcyvuijq阿尔塞知道热血沸腾超高压我色泽都热血沸腾超高压色的染发痛噶色调qwesrdtyuiop[ertyuioezrxtcyvuireztrxytcyvuijq阿尔塞知道热血沸腾超高压我色泽都热血沸腾超高压色的染发痛噶色调qwesrdtyuiop[ertyuioezrxtcyvuireztrxytcyvuijq阿尔塞知道热血沸腾超高压我色泽都热血沸腾超高压色的染发痛噶色调",@"1234567"]; self.tfTableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 64, kDEVICEWIDTH, kDEVICEHEIGHT - 64) style:UITableViewStylePlain]; self.tfTableView.backgroundColor = [UIColor whiteColor]; self.tfTableView.delegate = self; self.tfTableView.dataSource = self; [self.view addSubview:self.tfTableView];}#pragma mark - UITableViewDataSource- (NSInteger)tableView:(__unused UITableView *)tableView numberOfRowsInSection:(__unused NSInteger)section{ return (NSInteger)[self.messageArray count];}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *CellIdentifier = @"Cell"; TFTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (!cell) { cell = [[TFTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; } cell.post = self.messageArray[(NSUInteger)indexPath.row]; return cell;}#pragma mark - UITableViewDelegate- (CGFloat)tableView:(__unused UITableView *)tableViewheightForRowAtIndexPath:(NSIndexPath *)indexPath{ //自动计算cell的高度 return [TFTableViewCell heightForCellWithPost:self.messageArray[(NSUInteger)indexPath.row]];}- (void)tableView:(UITableView *)tableViewdidSelectRowAtIndexPath:(NSIndexPath *)indexPath{ [tableView deselectRowAtIndexPath:indexPath animated:YES];}@end
0 0
- ios tableview 自动计算cell高度
- iOS8之后tableView cell自动计算高度
- iOS 自动计算cell高度
- Swift iOS tableView static cell动态计算高度
- IOS TableView的Cell高度自适应,UILabel自动换行适应
- IOS TableView的Cell高度自适应,UILabel自动换行适应
- IOS TableView的Cell高度自适应,UILabel自动换行适应
- ios TableView的Cell高度自适应,UILabel自动换行适应
- IOS TableView的Cell高度自适应,UILabel自动换行适应
- IOS TableView的Cell高度自适应,UILabel自动换行适应
- IOS TableView的Cell高度自适应,UILabel自动换行适应
- IOS TableView的Cell高度自适应,UILabel自动换行适应
- IOS TableView的Cell高度自适应,UILabel自动换行适应
- IOS TableView的Cell高度自适应,UILabel自动换行适应
- IOS TableView的Cell高度自适应,UILabel自动换行适应
- 自动计算cell高度
- iOS cell 高度计算
- MVVM动态计算Cell套TableView高度
- PYTHON 常用库笔记 - random
- java类集框架
- 基于线结构光的三维测量系统转轴快速标定方法
- 大小端字节序
- 带锁的线程安全的LRULinkedHashMap简单实现
- ios tableview 自动计算cell高度
- Caused by: java.lang.ClassNotFoundException[android的终极解决错误]
- oracle命令sqlplus/nolog无法进入
- thread_Synchronized(同步与互斥)
- CGridCtrl的使用方法
- poj 1753
- ajax实例
- C++中嵌入python程序——命令行模式
- PAT-B 1024. 科学计数法