Próbuję skonfigurować ciemnoszary kolor separatora. Dlaczego poniższe nic nie robią?
self.tableView.seperatorStyle = UITableViewCellSeperatorStyleSingleLine;
self.tableView.seperatorColor = [UIColor colorWithRed: 127 green:127 blue:127 alpha:1];
zwraca tabelę bez żadnych separatorów.
Jak tylko użyję [UIColor blackColor] , separatory są w porządku. O co chodzi?
iphone
cocoa-touch
uitableview
ios4
skålfyfan
źródło
źródło
UIColor
musi obsługiwać „głęboki kolor” (czyli kolory o głębi większej niż 24 bity lub 32 z alfa). Oczywiście to nadal nie zmienia faktu, że wbudowana wygodna metoda (wraz z obsługą szesnastkową) byłaby bardzo pomocna dla wielu programistów!Ponieważ Twoja metoda UIColor wymaga wartości zmiennoprzecinkowej z zakresu 0-1, a nie 0-255. Musisz podzielić wszystkie wartości RGB przez 255,0 w następujący sposób:
self.tableView.seperatorColor = [UIColor colorWithRed:127.0f/255.0f green:127.0f/255.0f blue:127.0f/255.0f alpha:1.0f];
źródło
Musisz podzielić swoje wartości przez 255, ponieważ zakres wynosi 0-1. Weź 127/255 = 0,49f i wpisz to zamiast tego. Jest tam, jest po prostu biały :)
edycja: przyczyna komentarzy, dodałem kod, jak to rozwiązać:
-(float)getRGBValue:(int) rgbValue{ return rgbValue/255.0; ]
źródło
Istnieją dwie nowe metody,
UIColor
które akceptują wartości całkowite od 0 do 255:UIColor(red: Int, green: Int, blue: Int)
i
UIColor(alpha: Float, red: Int, green: Int, blue: Int)
Nie ma tego w dokumentacji, ale użyłem go i działa jak urok.
źródło