Acabo de notar algo muy extraño con la clase UITableViewCell en iOS y la propiedad userInteractionEnabled.Error extraño de iOS con UITableViewCell y userInteractionEnabled
Parece que si userInteractionEnabled se establece en NO antes de asignar texto a la etiqueta de la celda, entonces el texto es de color gris. Sin embargo, al configurar userInteractionEnabled a NO después de el texto se ha establecido deja el color del texto como negro (consulte el fragmento de código de ejemplo a continuación).
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
// swap these two lines around, and the text color does not change to grey!
cell.userInteractionEnabled = (indexPath.row % 2) == 0;
cell.textLabel.text = @"Hello";
return cell;
}
Esto es muy molesto, porque significa que termino con un comportamiento diferente en el caso de que se vuelve a utilizar una célula. El ejemplo anterior lo demuestra: la primera página de la tabla muestra filas alternativas con texto gris/negro. Desplácese más abajo para que las células se vuelvan a utilizar, y puede ver que las cosas van mal.
Me pregunto si estoy haciendo algo mal, o si esto es un error de iOS? Veo el problema en iOS 5.1 en el iPad 3. ¡Cualquier idea realmente apreciada!
Si yo tienes un error reproducible (especialmente con algún código de ejemplo) y luego infórmalo a Apple: https://developer.apple.com/bugreporter/ –
Informé esto a Apple (hace un tiempo), por cierto. Aún no escuché nada ... –