[关闭]
@SanMao 2015-08-06T00:35:42.000000Z 字数 2723 阅读 1388

UITableView

UI


如何让tableView展示数据

  1. self.tableView.dataSource = self;
  1. @interface ViewController () <UITableViewDataSource>
  2. @end
  1. // 多少组数据
  2. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
  3. // 每一组有多少行数据
  4. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
  5. // 每一行显示什么内容
  6. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
  7. // 每一组的头部
  8. - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section;
  9. // 每一组的尾部
  10. - (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section

tableView的常见设置

  1. // 设置每一行cell的高度
  2. self.tableView.rowHeight = 100;
  3. // 设置每一组头部的高度
  4. self.tableView.sectionHeaderHeight = 50;
  5. // 设置每一组尾部的高度
  6. self.tableView.sectionFooterHeight = 50;
  7. // 设置分割线颜色
  8. self.tableView.separatorColor = [UIColor redColor];
  9. // 设置分割线样式
  10. self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
  11. // 设置表头控件
  12. self.tableView.tableHeaderView = [[UISwitch alloc] init];
  13. // 设置表尾控件
  14. self.tableView.tableFooterView = [UIButton buttonWithType:UIButtonTypeContactAdd];
  15. // 设置右边索引文字的颜色
  16. self.tableView.sectionIndexColor = [UIColor redColor];
  17. // 设置右边索引文字的背景色
  18. self.tableView.sectionIndexBackgroundColor = [UIColor blackColor];

tableViewCell的常见设置

  1. // 设置右边的指示样式
  2. cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
  3. // 设置右边的指示控件
  4. cell.accessoryView = [[UISwitch alloc] init];
  5. // 设置cell的选中样式
  6. cell.selectionStyle = UITableViewCellSelectionStyleNone;
  7. // backgroundView优先级 > backgroundColor
  8. // 设置背景色
  9. cell.backgroundColor = [UIColor redColor];
  10. // 设置背景view
  11. UIView *bg = [[UIView alloc] init];
  12. bg.backgroundColor = [UIColor blueColor];
  13. cell.backgroundView = bg;
  14. // 设置选中的背景view
  15. UIView *selectedBg = [[UIView alloc] init];
  16. selectedBg.backgroundColor = [UIColor purpleColor];
  17. cell.selectedBackgroundView = selectedBg;

cell的循环利用

  1. /**
  2. * 每当有一个cell要进入视野范围内,就会调用一次
  3. */
  4. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  5. {
  6. static NSString *ID = @"wine";
  7. // 1.先去缓存池中查找可循环利用的cell
  8. UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
  9. // 2.如果缓存池中没有可循环利用的cell
  10. if (!cell) {
  11. cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
  12. }
  13. // 3.设置数据
  14. cell.textLabel.text = [NSString stringWithFormat:@"%zd行的数据", indexPath.row];
  15. return cell;
  16. }
  1. NSString *ID = @"wine";
  2. - (void)viewDidLoad {
  3. [super viewDidLoad];
  4. // 注册某个重用标识 对应的 Cell类型
  5. [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:ID];
  6. }
  7. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  8. {
  9. // 1.先去缓存池中查找可循环利用的cell
  10. UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
  11. // 2.设置数据
  12. cell.textLabel.text = [NSString stringWithFormat:@"%zd行的数据", indexPath.row];
  13. return cell;
  14. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注