2

所以我有一个UITableView列出数据的子类。我只需要选择一个单元格。

- (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];
}

到目前为止,我执行此操作的代码有效,但仅在单击单元格至少一次之后。将它放在 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 回答