首先附上效果圖吧,一個自定義的cell!
第一步:創建表格
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. self.table=[[UITableView alloc] initWithFrame:CGRectMake(0, 0, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height) style:UITableViewStyleGrouped]; self.table.delegate=self; self.table.dataSource=self; [self.view addSubview:self.table]; } -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 5; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ NSInteger number; if (section==0) { number=2; }else if (section==1){ number=3; }else if (section==2){ number=5; }else{ number=1; } return number; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ NSString *acell=@"acell"; ZKbuttonTableViewCell *button=[tableView dequeueReusableCellWithIdentifier:acell]; if (!button) { button=[[[NSBundle mainBundle] loadNibNamed:@"ZKbuttonTableViewCell" owner:self options:nil]lastObject]; } [button.first addTarget:self action:@selector(btnClick:event:) forControlEvents:UIControlEventTouchUpInside]; return button; }
第二步:也就是關鍵代碼
-(void)btnClick:(id)sender event:(id)event{ //獲取觸摸點的集合,可以判斷多點觸摸事件 NSSet *touches=[event allTouches]; //兩句話是保存觸摸起點位置 UITouch *touch=[touches anyObject]; CGPoint cureentTouchPosition=[touch locationInView:self.table]; //得到cell中的IndexPath NSIndexPath *indexPath=[self.table indexPathForRowAtPoint:cureentTouchPosition]; NSLog(@"section----%i,----row---%i",indexPath.section,indexPath.row); }
關鍵地方的注釋有的,簡單的功能就實現了!!!!