一 概述
本文主要介绍给表格布局中的Cell类型设置右侧视图,及右侧视图的监听
常见的右侧视图:
- ITableViewCellAccessoryDisclosureIndicator:右箭头
- UITableViewCellAccessoryCheckmark:对号
- UITableViewCellAccessoryDetailButton:按钮
- UITableViewCellAccessoryDetailDisclosureButton:按钮+箭头
二 效果图
三 代码
3.1 OC模式下(ViewController.m)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
| #import "ViewController.h" #import "Hero.h"
@interface ViewController ()<UITableViewDataSource,UITableViewDelegate> @property (weak, nonatomic) IBOutlet UITableView *tableView; @property (nonatomic,strong) NSArray *heros; @end
@implementation ViewController
- (NSArray *)heros { if (_heros==nil) { _heros=[Hero heros]; } return _heros; } - (UITableView *)tableView { if (_tableView== nil) { _tableView=[[UITableView alloc]initWithFrame:self.view.bounds style:UITableViewStylePlain]; _tableView.dataSource=self; _tableView.delegate=self; [self.view addSubview:_tableView]; } return _tableView; } - (void)viewDidLoad { [super viewDidLoad]; //NSLog(@"%@",self.heros); [self tableView]; //self.tableView.rowHeight=80; } #pragma -设置数据源 //每个分组中的数据总数 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return self.heros.count; } //告诉表格每个单元格的明细信息 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:nil]; //取出对象 Hero *hero=self.heros[indexPath.row]; cell.textLabel.text=hero.name; cell.imageView.image=[UIImage imageNamed:hero.icon]; cell.detailTextLabel.text=hero.intro; //设置右箭头 /** 1. UITableViewCellAccessoryDisclosureIndicator:右箭头 2. UITableViewCellAccessoryCheckmark:对号 3.UITableViewCellAccessoryDetailButton:按钮 3.UITableViewCellAccessoryDetailDisclosureButton:按钮+箭头 */ //cell.accessoryType=UITableViewCellAccessoryDetailButton; UISwitch *switcher=[[UISwitch alloc]init]; [switcher addTarget:self action:@selector(switchChange:) forControlEvents:UIControlEventValueChanged]; cell.accessoryView=switcher; return cell; } #pragma 代理方法设置 -(void)switchChange:(UISwitch *)sender { NSLog(@"%s %@",__func__,sender); } //设置行高 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 60; //return (indexPath.row %2)?60:44; } //选中某一行 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSLog(@"%s %@",__func__,indexPath); } //取消选中某一行 - (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath { } @end
|