UI基础之------UITableView高级

一 自定义 cell

1.在实际编程的过程中,往往会根据不同的需求,设计出不同的界面样式,所以我们需要在系统提供的控件的基础上,自定义控件用来布局界面.

2.自定义cell 就是创建一个UITableViewCell的子类.

3.把 cell 上的控件创建都封装在子类中,简化UIViewController 中的代码

4.子视图控件添加到 cell的 contentView 上.

二 cell 中的控件显示 Model 中的信息

1.    cell 中声明了一个 Model 类型的属性,viewController 中获取到 Mode 对象后赋值给 cell的 Model 属性

2.    cell 中重写 Model 的 setter 方法,把 Model 对象中的内容重新赋值给各个控件

3.    M和 V不直接进行通信, C负责 M和 V之间进行通信

三 cell 中的自定义控件

1.    计算文本高度是所用的字体要和 label 显示时用的字体一致

2.    label 的宽度要和计算时使用的限定宽度一致

3.    这样才能保证文本显示在 label 中时, label 中时, label 高度恰巧够.

4.     tableView: heightForRowAtIndexPath: 方法要比 tableView:cellForRowAtIndexPath先执行

5.    所以要提前计算号每个文本cell 需要的高度

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

需要一个 News对象, cellHeight是一个自定义的类方法,所有只能通过类进行调用

return [NewCellcellHeight:self:mArray[indexPath.row]];

}

6.    自定义计算文本高度的方法:

1>主要方法:

[summary boundingRectWithSize:size  options:

NSStringDrawingUsesLineFragmentOriginattributes:attributes context:nil]

  2>设置了 cell 的高度之后,还不能实现文本内容的自适应,需要将显示文本的 Lable 控件也设置为自适应高度,所以需要在对 Lable 赋值完成之后进行设置

 (因为不能在 frame 中对高度进行修改)所以需要先取出 frame 的值,进行修改,完成之后,再重新对 frame 进行赋值(修改的时候,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值