[转]让UITableView中的单元格根据内容的多少自动调整高度
2013-05-18 22:03
627 查看
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; { NSString *text = [items objectAtIndex:[indexPath row]]; //下句中(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2) 表示显示内容的label的长度 ,20000.0f 表示允许label的最大高度
CGSize constraint = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f); CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap]; CGFloat height = MAX(size.height, 44.0f); return height + (CELL_CONTENT_MARGIN * 2); } - (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell; UILabel *label = nil; cell = [tv dequeueReusableCellWithIdentifier:@"Cell"]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"Cell"] autorelease]; label = [[UILabel alloc] initWithFrame:CGRectZero]; [label setLineBreakMode:UILineBreakModeWordWrap]; [label setMinimumFontSize:FONT_SIZE]; [label setNumberOfLines:0]; [label setFont:[UIFont systemFontOfSize:FONT_SIZE]]; [label setTag:1]; [[label layer] setBorderWidth:2.0f]; [[cell contentView] addSubview:label]; } NSString *text = [items objectAtIndex:[indexPath row]]; CGSize constraint = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f); CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap]; if (!label) label = (UILabel*)[cell viewWithTag:1]; [label setText:text]; [label setFrame:CGRectMake(CELL_CONTENT_MARGIN, CELL_CONTENT_MARGIN, CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), MAX(size.height, 44.0f))]; return cell; }
源代码下载:http://download.csdn.net/detail/ygm900/5404317
以上源代码可在模拟器模式下正常运行,已测试。
相关文章推荐
- UITableView详解(UITableViewCell(三) cell根据文本长度来自动调整cell高度)
- QTableView根据内容自动调整列宽行高
- 让UIWebView根据内容自动调整高度
- UILabel根据内容自动调整高度
- iframe根据内容自动调整高度,在ie,firfox可行,opera不行
- 根据内容自动调整高度的cell
- UILable根据内容多少自动改变高度
- Android ScrollView中嵌套ListView,ListView根据内容自动调整高度
- 设置DIV根据内容自动调整高度的三个方法
- jquery mobaile中textarea根据内容自动调整高度
- fastreport中列宽固定,根据字段内容多少自动调整行高?
- AutoFitTextView-根据文本内容自动调整字体大小的TextView
- 根据内容自动调整IFrame高度
- QTableView根据内容自动调整列宽行高
- 根据表格内容,自动调整VB.NET中Datagrid控件单元格宽度
- Autosize插件允许textarea元素根据录入的内容自动调整元素的高度
- ios 文字 控件 自适应 高度 宽度 CustomCell 自适应高度+uilabel自动换行+ UITextView 根据内容自动调整高度
- iOS 8 Tableview根据AutoLayout自动调整高度,iostableview高度
- div/form等无法根据内容自动调整高度解决办法
- QTableView根据内容自动调整大小(resizeColumnToContents解决不了的)