UITableView cell中label自动换行和自定义label自动换行
2014-10-15 13:21
204 查看
换行的前提必须是有足够的高度 才能换 否则不显示超出部分
所以,在设置label换行的时候 要考虑cell的高度,cell的高度也要变化,废话不多说,来段代码:
所以,在设置label换行的时候 要考虑cell的高度,cell的高度也要变化,废话不多说,来段代码:
cell.label.text=[dict objectForKey:@"info"]; cell.label.numberOfLines=0; //可多行显示 cell.label.lineBreakMode=NSLineBreakByWordWrapping;//拆行 设置label的高度 [self changeLabelHeight:cell.label :cell.label.text]; //设置label的高度 -(void)changeLabelHeight:(UILabel *)label : (NSString *)string{ NSDictionary *attribute = @{NSFontAttributeName: [UIFont systemFontOfSize:15]}; //计算UILabel字符显示的实际大小 size=[string boundingRectWithSize:CGSizeMake(145, 1000)//最大限制的宽和高 options:NSStringDrawingUsesLineFragmentOrigin attributes:attribute context:nil].size; //重设UILabel实例的frame [label setFrame:CGRectMake(label.frame.origin.x, label.frame.origin.y, size.width, size.height)]; NSLog(@"%lf",size.height); }
//设置cell的高度 //设置行高 -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ NSDictionary *attribute = @{NSFontAttributeName: [UIFont systemFontOfSize:15]}; NSDictionary *dict=[self.listData objectAtIndex:indexPath.row+1]; //获取数据,根据数据来确定长和高 CGSize size=[[dict objectForKey:@"info"] boundingRectWithSize:CGSizeMake(156, 1000)//最大限制宽和高 options:NSStringDrawingUsesLineFragmentOrigin attributes:attribute context:nil].size; NSLog(@"row heigth :%lf",size.height+20); if (size.height+20<58) { return 58; }else{ return size.height+20; } }
相关文章推荐
- 自定义圆环百分占比view (label文字支持自动换行 和设置显示行数)
- label自动换行代码
- 一个让label里字符串自动换行的属性
- [ASP.NET] 实现Label自动换行
- 在一个label中显示多行,自动换行
- 效控制C#中label输出文字的长度,自动换行
- label自动换行代码
- asp.net中Label内容自动换行
- [ASP.NET] 实现Label自动换行
- vb 如何在Text文本框或Label里显示一个字符后自动换行
- C# WinForm 中控件(Label,Button等) 文本自动换行 解决方法
- label自动换行代码和DataGrid中删除最后一页的记录时出错的解决办法以及HTML小TIPS:强制HTML表格断行
- Label 滚动效果与自动换行
- C# WinForm 中控件(Label,Button等) 文本自动换行 解决方法
- Delphi中如何使Label固定宽度且自动换行
- 效控制C#中label输出文字的长度,自动换行
- 效控制C#中label输出文字的长度,自动换行
- label自动换行代码和DataGrid中删除最后一页的记录时出错的解决办法以及HTML小TIPS:强制HTML表格断行
- Label和Textbox实现自动换行
- winform程序中Label自动换行