在视图加载后第一次点击我的UITableView时,我没有输出
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{
NSLog(@"the clicked index -- %i", indexPath.row);
}
在第二次点击 - 以及随后的所有点击 - 我得到了我期望从前一次点击的输出(除非点击同一行,当然不会触发消息)。因此,如果我点击第2行,然后是0,那么我得到输出:
这里是cellForRowAtIndexPath的代码;
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
[cell setBackgroundColor:[UIColor blueColor]];
[cell.textLabel setTextColor:[UIColor whiteColor]];
[cell.textLabel setTextAlignment:NSTextAlignmentCenter];
if (_currentTileIndex >= 0 && _currentTileIndex < _timeSlotChumsArrays.count) {
cell.textLabel.text = (NSString*)_timeSlotChumsArrays[_currentTileIndex][indexPath.row];
}
return cell;
}
任何线索?
答案 0 :(得分:2)
您使用的是错误的委托方法。取消选择单元格时会调用-didDeselect。
更改
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
要
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
答案 1 :(得分:0)
使用此委托方法
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"%i", indexPath.row);
}