Ho appena notato qualcosa di molto strano con la classe UITableViewCell su iOS e la proprietà userInteractionEnabled.Bug strano di iOS con UITableViewCell e userInteractionEnabled
Sembra che se userInteractionEnabled è impostato su NO prima dello che assegna il testo all'etichetta della cella, il testo viene colorato in grigio. Tuttavia, impostando userInteractionEnabled su NO dopo il testo è stato impostato, il colore del testo diventa nero (vedere il frammento di codice di esempio riportato di seguito).
- (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;
}
Questo è davvero fastidioso, perché significa che alla fine con un comportamento diverso nel caso che una cella viene riutilizzato. L'esempio sopra lo dimostra: la prima pagina della tabella mostra righe alternate con testo grigio/nero. Scorri più in basso in modo che le celle vengano riutilizzate e puoi vedere che le cose vanno male.
Mi chiedevo se sto facendo qualcosa di sbagliato o se si tratta di un bug di iOS? Vedo il problema in iOS 5.1 su iPad 3. Qualsiasi intuizione è davvero apprezzata!
Se yo hai un bug riproducibile (specialmente con qualche codice di esempio) quindi per favore segnalalo a apple: https://developer.apple.com/bugreporter/ –
Ho segnalato questo a Apple (un po 'di tempo fa), btw. Non ho ancora sentito niente ... –