Ich habe gerade etwas sehr seltsam mit der UITableViewCell-Klasse auf iOS und der userInteractionEnabled-Eigenschaft bemerkt.Weird iOS Bug mit UITableViewCell und userInteractionEnabled
Es scheint, dass, wenn userInteractionEnabled auf NO vor festgelegt ist, Text dem Zellenlabel zugewiesen wird, dann wird der Text grau dargestellt. Wenn Sie jedoch userInteractionEnabled auf NO setzen nach der Text festgelegt wurde, bleibt die Textfarbe schwarz (siehe das folgende Codefragment).
- (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;
}
Das ist wirklich ärgerlich, weil es bedeutet, dass ich mit einem anderen Verhalten in dem Fall am Ende, die eine Zelle wiederverwendet wird. Das obige Beispiel demonstriert dies - die erste Seite der Tabelle zeigt alternative Zeilen mit grauem/schwarzem Text. Scrollen Sie weiter nach unten, damit die Zellen wiederverwendet werden und Sie sehen, dass die Dinge schief gehen.
Ich frage mich nur, ob ich etwas falsch mache, oder ob das ein iOS Bug ist? Ich sehe das Problem unter iOS 5.1 auf dem iPad 3. Jeder Einblick wirklich geschätzt!
Wenn yo Sie haben einen reproduzierbaren Fehler (vor allem mit einigen Beispielcode), dann bitte melden Sie es an Apple: https://developer.apple.com/bugreporter/ –
Ich berichtete dies Apple (eine ganze Weile zurück), BTW. Noch nichts gehört ... –