Essayez d'utiliser une petite astuce:
Définissez simplement l'alpha de la cellule. Mettez certaines conditions comme vos propres exigences et définissez l'alpha.
cell.alpha=0.2;
Si cela ne fonctionne pas, comme vous l'aimez alors, utilisez la deuxième astuce,
Prenez simplement une image de la taille de la cellule avec un fond gris avec un fond transparent, ajoutez simplement cette image dans l'image sur le contenu de la cellule. Comme ça:
// 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;
}
Bien que je ne sois pas sûr du chemin, cela répondra sûrement à vos besoins. Cela donnera une sorte d'illusion dans l'esprit de l'utilisateur que la cellule est désactivée. Essayez simplement d'utiliser cette solution. J'espère que cela résoudra votre problème.
cell.userInteractionEnabled = cell.textLabel.enabled = cell.detailTextLabel.enabled = NO;