iOS之UITableView相关

表视图UITableView

作用 :实现以一列多行的形式来显示大量的数据的一种视图

表格的样式 (style) :
行之间没有间距,普通样式:plain
可以将行分组(区),分组样式:Group

表格的添加:
1.声明一个tableview的属性

@property(nonatomic,strong)UITableView *tableview;

2.初始化并添加到父视图中

- (void)viewDidLoad {
-  self.tableView=[[UITableView alloc]initWithFrame:<#(CGRect)#> style:<#(UITableViewStyle)#>];
-//设置代理和数据源为自己
- self.tableview.datasoure=self;
- self.tableview.delegate=self;
- [self.view addSubview:self.tableView];
- }

3.采纳协议

@interface TestViewController ()<UITableViewDataSource,UITableViewDelegate>

4. 实现方法 UITableViewDataSource

俗称“3问一答”

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView; 
//一共有几个分区

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
//一个分区有几个Row

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
//每个Row是什么样子的

4.实现代理方法

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
- //调整Row的高度
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
-//点中某行如何处理

等等方法可以进入<UITableViewDelegate>查看

表视图控制器 UITableViewController

使用 :
新建一个类,继承UITableViewController.
只需要关注“三问一答”即可

@interface HomeTableViewController : UITableViewController

UITableViewCell的组成

通过Cell获取对应的indexPath
NSIndexPath *index = [tableView indexPathForCell:cell];

通过indexPath获取对应的Cell
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
内容视图

系统版
已经提供了是哪个可用的控件,用于显示文字或图片
通过cell 的textLabel detailTextLabel imageView
创建cell时,通过style参数限定三个控件的摆放位置
系统的四种方式 :
Default:没有详细
Value1:详细在右边
Value2:没有imageview
Subtitle:详细在下面

自定义
1.创建要显示的控件
2.将创建好的空间以子视图的形式,添加 到cell.contentView中即可

辅助视图

系统版 通过cell 的accessoryType属性设置
checkmark 对勾
disclosurelndicator 大于号
detailButton 圆圈i
detailDiscloureButton 圆圈i+大于号
自定义
1.创建控件实例
2.将创建好的控件实例 赋值 给cell.accessoryView即可

单元格的重用

核心:如果没有取出,自己创建
原理:系统会将超出屏幕的不可见单元格 放回到tableView的一个队列中存储,在需要一个cell对象先尝试从队列中取,如有有则把这个cell从队中取出继续使用,如果没有则创建新的cell

重用方式二:
核心:如果没有取出,系统自动创建
原理:在开始的时候,向系统注册一个cell类型的样式. 在需要一个cell对象先尝试从队列中取,如有有则把这个cell从队中取出继续使用,如果没有 系统会根据之前注册的样式创建一个cell使用

表格结合各种数据模型的显示:
[前提:表格的行数是不定的]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值