zgrupowanych UITableViewCell
wykorzystuje tableCellGroupedBackgroundColor
kolor zamiast zwykłej whiteColor
kolorze, w iOS 5. W rezultacie, tło komórek niestandardowych nie zgadza się z tymi UITableViewCell
(domyślnie podtytuł , Value1, Value2).UITableViewCell kolor tła jest inny w iOS5 vs iOS4
Jaki jest najlepszy sposób, aby upewnić się, że ten sam kolor tła jest używany w niestandardowym UITableViewCell
i domyślnie UITableViewCell
(i powiązane z nim UILabel
i innymi elementami) - w.r.t. zarówno iOS4, jak i iOS5?
Uwaga: W edytorze widzę nowy kolor o nazwie tableCellGroupedBackgroundColor
, ale nie ma kategorii/metody, która mogłaby programowo uzyskać ten kolor.
Edit:
można użyć następujących technik, aby zmienić kolor tła kontroli na swojej komórce, ale już w przypadku niestandardowych komórek, w jaki sposób można ustawić odpowiedni kolor tła w oparciu o system operacyjny (iOS 4 vs iOS 5)?
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
for (UIView* view in cell.contentView.subviews) {
view.backgroundColor = cell.backgroundColor;
}
}
Najprostszym rozwiązaniem (mój obecny wdrożone): To właśnie gwarantuje, że wszystkie moje komórki mają białe tło, niezależnie od systemu operacyjnego. W jakiś sposób nie muszę stosować białego koloru do cell.contentView.subviews
.
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
[cell setBackgroundColor:[UIColor whiteColor]];
}
To nie jest dobry pomysł, ponieważ ustawienie przezroczystego koloru tła dla dowolnego widoku spowalnia wydajność. Jeśli nie potrzebujesz tła gradientowego, powinieneś ustawić tło jako nieprzezroczyste. To właśnie zaleca Apple i to także moje doświadczenie ... –