IOS_UITableViewCell(UITabel)自动适应Row高
2016-03-09 17:59
387 查看
ViewController.m
在UITableView里面有一个协议叫< UITableViewDataSource>
里面有一个方法:
协议的方法
在UITableView里面有一个协议叫< UITableViewDataSource>
里面有一个方法:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { //返回行的高度 return 0; }
主要代码:
ViewController.m协议的方法
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:Cell forIndexPath:indexPath]; NSDictionary *dic=_dataArray[indexPath.row]; cell.textLabel.text=dic[@"text"]; cell.textLabel.numberOfLines=0;//自动适应label高和宽 cell.textLabel.font=[UIFont systemFontOfSize:15];//设置label文字大小 return cell; }
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { NSDictionary *dic=_dataArray[indexPath.row];//从数组里面取出字典 NSString *string=dic[@"text"];//从字典取出字符串 /* 得到label在Row的CGRect */ CGRect fram=[string boundingRectWithSize:CGSizeMake(UISCREEN_W-30, SHRT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15]} context:nil]; if (fram.size.height>30)//判断label高度大于30 { return fram.size.height+10;//如果大于30给他足够的高度 } else { return 30;//如果不大于30就说明只有一行 } }
相关文章推荐
- Epic Games王祢:UE4在移动平台的开发优势
- UI学习第08天
- 让build自动增长的脚本
- iOS 9人机界面指南(四):UI元素
- 修改UItextField输入框placeholder的字体默认颜色和大小,采用KVC方式设置
- iOS个人整理24-集合视图--UICollectionView
- Algrothm_Sort_QuickSort
- 创建sequence
- iosUI篇-Date Picker 和 UITool Bar 控件简单的介绍
- Java集合类: Set、List、Map、Queue使用场景梳理
- 设置继承自UIScrollView控件的滚动速度
- iOS 【UIKit-UIImageView 的 contentMode 属性概述】
- Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag
- Android中Volley的Request的自定义
- 数据库连接池 druid配置 (阿里)
- CSRF verification failed. Request aborted.
- easyUI中datetimebox和combobox的取值方法
- NSOperationQueue
- Android酷炫实用的开源框架(UI框架)
- easyUI参数传递Long型8100131457085857579980953变成8.100131457085857e 24的问题,如下可以解决