Belirli bir hücrenin seçilip seçilmediğini kontrol eden bir tablo görüntüleme temsilcisine sahibim. Değilse, seçim iptal edilir. kullanıcıya görsel geribildirim vermek amacıyla kırmızı bu hücrenin bir etiket boya istiyor ve kısa bir süre sonra siyah geri boyamak:Animasyon içinde willSelectRowAtIndexPatifikasyondan sonra tekrar
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (true) { // Some simplification
MyTableViewCell cell = ... // The correct cell is loaded here
[UIView animateWithDuration:0.5 animations:^{
cellToSelect.labelAmount.textColor = [UIColor redColor];
} completion:^(BOOL finished) {
[UIView animateWithDuration:1.0 animations:^{
cellToSelect.labelAmount.textColor = [UIColor blackColor];
}];
}];
return nil;
}
return indexPath;
}
animasyonlar gerçekleştirilmez. Bunun yerine, hücre sadece (görsel olarak) seçilmemiş.
DÜZENLEME: Önerilen çözümleri denedim ve işe yaramadı. Bu yüzden biraz daha kazılırken ben animasyonlar yapmak ancak hücre içinde herhangi bir etiket textColor değiştirmek mümkün değilim ki öğrendim: çalışmayan bir renkli atfedilen dizesi yoluyla renk ayarı, aynı zamanda
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MyTableViewCell cell = ...
cell.labelAmount.textColor = [UIColor redColor];
// Now, although the property was set (as I can see in the debugger)
// the label is still drawn with standard black text.
}
.
Diğer taraftan, highlightedTextColor
değişikliği buna göre sunulmuştur. Yani bu işe yarıyor.
Eğer 'MyTableViewCell hücresi = ... // doğru hücre burada hücreyi yüklemek here' yüklenmiş olduğundan emin misin kullanın? "CellForRowAtIndexPath" yöntemi genellikle kullanılır, ancak bu hücre ekranda görünmüyorsa hiçbir hücre döndürmez. – pteofil