Mam UILabel w UITableView. Oto kod mam napisane w cellForRowAtIndexPathUstawianie przezroczystego tła dla UILabel dla aplikacji iphone
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectMake(30.0, 5.0, 250.0, 35.0) reuseIdentifier:CellIdentifier] autorelease];
}
CGRect rect = CGRectMake(30.0, 5.0, 250.0, 35.0);
UILabel *label = [[UILabel alloc] initWithFrame:rect];
label.opaque = NO;
label.font = [UIFont systemFontOfSize:14];
label.numberOfLines = 2;
label.textAlignment = UITextAlignmentCenter;
label.textColor = [UIColor darkGrayColor];
label.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0];
[label setText:@"Test Message"];
[cell addSubview:label];
[label release];
cell.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
Moim zamiarem było ustawić tło komórki i UILabel jako przezroczysty.
Ale to nie działa. może ktoś mi powiedzieć co mi brakuje tutaj
Dzięki
Sandeep
Teraz, gdy już wskazał nam we właściwym kierunku (dzięki!) Dodam, że 'label.backgroundColor = nil; 'jest łatwiejszy do zapamiętania i robi to samo. (Kolor BG jest właściwością nadklasy, UIView, dla klasy ref, "Wartość domyślna to zero, co powoduje, że kolor tła jest przezroczysty." Podklasa UILabel prawdopodobnie początkowo ustawia ją na biały, dlatego należy jawnie zmienić z powrotem do zera/wyczyść.) – Wienke
Podczas testów okazuje się jednak, że powinieneś trzymać się oryginalnej odpowiedzi oden. Niwelowanie koloru tła działa na początku dobrze, ale jeśli później zmienisz tekst etykiety, nowy tekst zostanie * nałożony * na stary. Bardzo dziwne. – Wienke
Ustawienie wartości zerowej było również moim pierwszym domysłem, ale spowodowało, że cała etykieta (tekst i tło) zmieniła się całkowicie na czarny. [UIColor clearColor] działał idealnie. –