无法以编程方式选择UITableViewCell

时间:2014-03-31 08:58:40

标签: ios uitableview

我正在尝试在加载表视图时选择一行。我已经找到了关于这个问题的其他帖子,但他们没有解决我的问题,所以我再问一次。

我的tableview包含5行。而我这样做:

if ([[dataSource objectAtIndex:indexPath.row] isEqualToString:self.status]) {
    [self tableView:[self tableView] didSelectRowAtIndexPath:indexPath];
}

我还尝试了cell.selected = YES;cell.highlighted = YES;

我正在使用以下代码进行custion选择视图:

UIView *customColorView = [[UIView alloc] init];

customColorView.backgroundColor = [UIColor colorWithRed:180/255.0
                                                      green:138/255.0
                                                       blue:171/255.0
                                                      alpha:0.5];
cell.selectedBackgroundView =  customColorView;

请帮我以编程方式选择一行。当我点击该行时选择该行,但无法以编程方式选择。

3 个答案:

答案 0 :(得分:3)

尝试使用以下代码

[self.tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];

在这里,您需要为要选择的行设置indexPath

答案 1 :(得分:3)

您可以通过调用UITableView委托方法

来实现此目的
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {}

在此方法中,您需要检查每个选定的时间是否未点击相同的单元格。

if ([[myArray objectAtIndex:indexPath.row] isEqualToString:self.same]) 
{
    [myTable selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
}

答案 2 :(得分:1)

尝试在表视图对象上调用selectRowAtIndexPath:

if ([[dataSource objectAtIndex:indexPath.row] isEqualToString:self.status]) 
{
    [self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
}