非常简单的表格视图:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 2;
}
- (float)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 44;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SettingsCell"];
UILabel *label = (UILabel *)[cell viewWithTag:1];
switch (indexPath.row) {
case 0:
{
label.text = @"One";
break;
}
case 1:
{
label.text = @"Two";
break;
}
default:
break;
}
return cell;
}
当我点击一个单元格时,不会调用didSelectRowAtIndexPath。
细胞重叠:
这可能会发生什么?我可以滚动表格,但我无法选择单元格。有一点,这是有效的,我无法弄清楚究竟发生了什么事。
我正在使用Prototype单元格,并且选择设置为" Single Selection"在故事板中。所有视图都有userInteractionEnabled = YES。
答案 0 :(得分:0)
你似乎在这里反复提到第一个单元格:
UILabel *label = (UILabel *)[cell viewWithTag:1];
可以解释被覆盖的文字。
尝试类似:
if(indexPath.row == 1)
{
cell.textLabel.text = @"One";
}
答案 1 :(得分:0)
这是解决方案:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 44;
}
从" float"更改了返回类型到" CGFloat"。 Xcode 6.1甚至没有将此标记为警告。