Tente usar um pequeno truque:
Basta definir o alfa da célula. Coloque algumas condições como seus próprios requisitos e defina o alfa.
cell.alpha=0.2;
Se não funcionar, do jeito que você gostaria que fosse, use o segundo truque,
Basta tirar uma imagem do tamanho da célula com fundo cinza com Fundo transparente, basta adicionar essa imagem na imagem sobre o conteúdo da célula. Como isso:
// Customize the appearance of table view cells.
- (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] autorelease];
}
// Configure the cell...
if(indexPath.row==0)
{
cell.userInteractionEnabled=FALSE;
UIImageView *img=[[UIImageView alloc]init];
img.frame=CGRectMake(0, 0, 320, 70);
img.image=[UIImage imageNamed:@"DisableImage.png"];
img.backgroundColor=[UIColor clearColor];
[cell.contentView addSubview:img];
[img release];
}
else {
//Your usual code for cell interaction.
}
return cell;
}
Embora eu não tenha certeza sobre o caminho, mas isso certamente atenderá ao seu requisito. Isso dará uma espécie de ilusão na mente do usuário de que o celular está Desabilitado. Experimente usar esta solução. Espero que resolva o seu problema.
cell.userInteractionEnabled = cell.textLabel.enabled = cell.detailTextLabel.enabled = NO;