2

UITableViewしたがって、データをリストするサブクラスがあります。1 つのセルのみを選択可能にする必要があります。

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// rows in section 0 should not be selectable
    UITableViewCell *cell = (UITableViewCell *)[tableView cellForRowAtIndexPath:indexPath];
if (indexPath.row == 3) {
    cell.userInteractionEnabled = YES;
    cell.selectionStyle = UITableViewCellSelectionStyleGray;
    NSLog(@"Hey whats up, address");
    return indexPath;
}
else {
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
   return nil;
}



- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{


[tableView deselectRowAtIndexPath:indexPath animated:YES];
}

これまでのところこれを行うコードは機能しますが、セルが少なくとも 1 回クリックされた後にのみ機能します。didSelectCell に配置すると、1 ~ 2 秒間押し続けるとセルが選択されます。

4

1 に答える 1

3

でそれを行う必要がありcellForRowAtIndexPathます。このような:

-(UITableViewCell*)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

// your code
if(indexPath.row != 3)
{
    [cell setSelectionStyle:UITableViewCellSelectionStyleNone];
{

}

そして次にdidSelectRowAtIndexPath

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
   if(indexPath.row == 3)
    {
        //do your stuff
    {

}
于 2012-06-22T06:22:10.053 に答える