Попробуйте использовать небольшой трюк:
Просто установите альфа ячейки. Поставьте какое-нибудь условие в соответствии с вашими требованиями и установите альфа-канал.
cell.alpha=0.2;
Если не работает, как вам нравится, тогда используйте второй трюк,
Просто возьмите изображение размера ячейки с серым фоном с прозрачным фоном, просто добавьте это изображение в изображение поверх содержимого ячейки. Как это:
// 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;
}
Хотя я не уверен, как это сделать, но это обязательно выполнит ваше требование. Это создаст в сознании пользователя некую иллюзию, что ячейка отключена. Просто попробуйте использовать это решение. Надеюсь, оно решит вашу проблему.
cell.userInteractionEnabled = cell.textLabel.enabled = cell.detailTextLabel.enabled = NO;