2012-01-01 14 views
6

Próbuję zmienić kolor tła widoku, który pojawia się po przesunięciu wiersza UITableViewCell, koloru tła za przyciskiem "Usuń".Przesunięcie do usunięcia w UITableViewCell ma białe tło, trzeba wyczyścić

Próbowałem zmienić cell.editingAccessoryView, ale to nic nie dało.

UIView* myBackgroundView = [[UIView alloc] initWithFrame:CGRectZero]; 
    myBackgroundView.backgroundColor = [UIColor clearColor]; 
    cell.editingAccessoryView = myBackgroundView; 

Wszelkie pomysły?

+0

Czy kiedykolwiek znalazłeś rozwiązanie tego problemu? Mam ten sam problem :) –

Odpowiedz

7

Już prawie jesteś. Klasa UITableViewCell ma domyślną właściwość backgroundView, która jest domyślnie nil. Po prostu utwórz nową UIView, tak jak w pytaniu, a następnie przypisz ją do właściwości backgroundView swojej komórki.

cell.backgroundView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease]; 
cell.backgroundView.backgroundColor = [UIColor clearColor]; 
1

Myślę, że to zależy od sposobu dodawania treści do komórki.

Kiedy dodałem zawartość do komórki bezpośrednio za pomocą [cell addSubView] lub [cell.contentView addSubView], miałem ten sam problem.

Moja obejście tego było:

Create a view 
Add all your content(labels, images etc;) to this view 
Finally then add the view to your cell using [cell addSubView:tmpView] 

I nie trzeba manipulować przy posesji backgroundView więcej. Próbowałem tego i działa idealnie!

7

Odpowiadam, ponieważ znalezienie odpowiedzi zajęło mi trochę czasu i jest to pierwszy wpis, który pojawia się w wyszukiwaniu. Za pomocą metody willDisplayCell można uzyskać dostęp do koloru tła komórki. Zwróć uwagę, że [UIColor clearColor]; przywróci biały kolor, więc odpowiednio dostosuj swój kod.

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 

    cell.backgroundColor = [UIColor blackColor]; 

} 
0

Podczas gdy te odpowiedzi są poprawne, wydaje mi się, że w większości przypadków łatwiej jest ustawić kolor tła komórki w narzędziu do tworzenia interfejsu. Mam tu na myśli rzeczywistą właściwość koloru tła komórki, a nie widok zawartości. Nie ma powodu, aby robić to dynamicznie, jeśli zawsze będzie to kolor, który jest w widoku zawartości.

Powiązane problemy