第一步 

  在ViewController里,需要有数据,即就是数组,

第二步

创建一个UITableViewCell

.h文件中定义两个属性 分别是 一个字符串(用来赋值在TableViewcell 的Label 的Text),一个浮点数记录TableViewcell的高

.m文件中  定义一个全局变量label

//实现这个方法

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier

//重写这个方法

 1 #import <UIKit/UIKit.h>
 2
 3 @interface CustomTableViewCell : UITableViewCell
 4 /**
 5  *  显示在cell上的字符串
 6  */
 7 @property (nonatomic,copy)NSString * contentStr;
 8 /**
 9  *  cell 高度的最大值
10  */
11 @property (nonatomic,assign)CGFloat maxY;
12 @end

#import "CustomTableViewCell.h"@interface CustomTableViewCell ()
{UILabel *_label;
}
@end@implementation CustomTableViewCell- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {_label = [[UILabel alloc] init];_label.font = [UIFont systemFontOfSize:15];_label.numberOfLines = 0;// 换行样式_label.lineBreakMode = NSLineBreakByCharWrapping;[self.contentView addSubview:_label];}return self;
}- (void)setContentStr:(NSString *)contentStr
{_contentStr = contentStr;// 给label赋值_label.text = contentStr;CGFloat width = [UIScreen mainScreen].bounds.size.width - 20;// 第一个参数:字体的大小 第二个参数:就是文字显示的区域最大值 第三个参数:文字换行的样式CGSize size = [_label sizeThatFits:CGSizeMake(width, MAXFLOAT)];
//    CGSize size = [contentStr sizeWithFont:[UIFont systemFontOfSize:15] constrainedToSize:CGSizeMake(width, 999) lineBreakMode:NSLineBreakByCharWrapping];_label.frame = CGRectMake(10, 5, width, size.height);// 获取cell的高度_maxY = CGRectGetMaxY(_label.frame) + 10;
}- (void)awakeFromNib {// Initialization code
}- (void)setSelected:(BOOL)selected animated:(BOOL)animated {[super setSelected:selected animated:animated];// Configure the view for the selected state
}

第三步 展示数据

 1 #import "ViewController.h"
 2 #import "CustomTableViewCell.h"
 3
 4 @interface ViewController ()<UITableViewDataSource,UITableViewDelegate>
 5 {
 6     UITableView *_tableView;
 7     NSArray *_array;
 8 }
 9 @end
10
11 @implementation ViewController
12
13 - (void)viewDidLoad {
14     [super viewDidLoad];
15     [self getData];
16     [self addTableView];
17 }
18
19 - (void)getData
20 {
21     _array = @[@"",@"",@"",@""];//此处数据自己填吧
22 }
23
24 - (void)addTableView
25 {
26     _tableView = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain];
27     _tableView.delegate = self;
28     _tableView.dataSource = self;
29     [self.view addSubview:_tableView];
30 }
31
32
33 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
34 {
35     return _array.count;
36 }
37
38 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
39 {
40     NSString *ID = @"ID";
41     CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
42     if (cell == nil) {
43         cell = [[CustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
44     }
45
46     cell.contentStr = _array[indexPath.row];
47     // 设置cell的高度
48     tableView.rowHeight = cell.maxY;
49     return cell;
50 }

需要注意的是上面代码第48行,他在这里为TableViewcell 设置了Height

运行代码之后的结果是

转载于:https://www.cnblogs.com/fanwenzheIOS/p/4978825.html

UITableViewCell自定义高度相关推荐

  1. combox高度修改 winfrom_WinForm窗体中ComboBox控件自定义高度和选项文本居中完美解决方案...

    WinForm窗体中的ComboBox控件是有TextBox控件和ListBox控件组合而成,其本身是不能自定义高度的只能根据字体的大小而自动生成高度.另外,选中后的选项文本在ComboBox中显示默 ...

  2. BottomSheetDialogFragment 自定义高度 显示完全

    BottomSheetDialogFragment 默认的显示方式,是有一小段是要自己滑上来的,那么如何让他显示完全呢...直接上代码吧,原理啥的大家也估计不爱看...网上大多数的代码都是有问题的,跑 ...

  3. iOS-基础控件--UITbleViewCell的自定义(高度自适应方法简单封装)

    青楼梦好,难赋深情<巨钳蟹> UITableVie 中系统的Cell共提供了四种默认样式, 分别是: UITableVieCellStyleDefault UITableVieCellSt ...

  4. iOS学习之路十三(动态调整UITableViewCell的高度)

    大概你第一眼看来,动态调整高度是一件不容易的事情,而且打算解决它的第一个想法往往是不正确的.在这篇文章中我将展示如何使图表单元格的高度能根据里面文本内容来动态改变,同时又不必子类化UITableVie ...

  5. [ios]UITableViewCell自适应高度 【转】

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {     ...

  6. UITableViewCell自适应高度

    转自于: http://mrjeye.iteye.com/blog/1045785 - (CGFloat)tableView:(UITableView *)tableView heightForRow ...

  7. android通知栏自定义高度,Android 自定义通知栏适配

    之前做音乐播放器的需求中有要通知栏部分,发现不同手机显示的系统通知栏千奇百怪不统一,需要适配.分析发现目前大部分手机通知栏不是白色就是深色,因此经过考虑定义两种不同的布局,根据不同通知栏背景颜色来创建 ...

  8. java精确测量文本高度_基于文本精确计算UITableViewCell的高度

    我正在开发一个ios应用程序,并使用autolayout我正在尝试创建一个具有不同行高的表视图 . 原型单元的布局如下: 我有一个主单元格(黑色)里面有一个UIView(红色),里面有一个UILabe ...

  9. uni-app swiper设置自定义高度

    话不多少先上图, 大家可以看到图片中红色区域是头部区域,黄色区域则是我们要滑动的区域. 大家可以在uni-app官网上看到swiper高度是默认100%,而swiper-item则是要有固定宽高的,要 ...

最新文章

  1. 2018-3-19 损失函数与适应度函数,稳定选择与分裂选择
  2. 多激光雷达外参⾃动化标定算法及代码实例
  3. windows 正在查找bash.exe
  4. python non utf 8_Python 一个关于字符编码的诡异问题(Non-UTF-8 code starting with '\xe5')...
  5. shop--10.商品--商品添加(前端)及问题的解决
  6. ASP.NET Core MVC 源码学习:Routing 路由
  7. Python3.6学习笔记(五)
  8. 2016腾讯安全挑战赛第一轮-PC游戏方向
  9. discuz插件开发新手入门 超详细[转载]
  10. 【英语学习】【医学】无机化学 - 化合物命名(1) - 离子化合物
  11. 案例:多任务udp聊天器
  12. DHCP中继配置(思科)
  13. 小米手机安装欧洲版系统(MIUI12) 详细安装教程
  14. html速成项目,HTML速成教材.doc
  15. /usr/bin与/usr/local/bin/区别总结
  16. python3 进程池Pool 详解
  17. 正则匹配里面的(.*?)
  18. 想做web开发 就学JavaScript
  19. 那些10万变百万的矿工,都是从选对挖矿币种开始的!
  20. 智能设备点巡检系统,快速提高设备管理效率,欢迎在线试用

热门文章

  1. vscode终端没显示_记一个VS Code终端显示问题的较完美解决
  2. matlab fftshift_matlab下实现FFT信号分析
  3. php 导入表格数据,PHPExcel 导入Excel数据的方法
  4. linux关于文件夹的知识,Ubuntu 7.10 系统文件夹相关知识
  5. const类型限定符
  6. python精要(69)-turtle(1)
  7. C指针原理(5)-ATT汇编
  8. C指针原理(2)-ATT汇编
  9. 【行业应用】一文讲通电力数字化转型
  10. 【Python】利用 Python 实现多任务进程