iOS之UITableView相关

    xiaoxiao2021-09-18  76

    表视图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使用

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

    转载请注明原文地址: https://ju.6miu.com/read-677707.html

    最新回复(0)