2010-10-30 12 views
13

mam ustawienie koloru tła mojego UIView (co jest wewnątrz UIViewController) następująco:iPhone - UIView w tleColor - używając png z przezroczystością?

myView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"myTransparentBG.png"]]; 

ja nawet nie próbował ingerować [myView setOpaque:NO]; ale obraz nie pojawia się przejrzyste. Ma czarne tło. Czy mam to naprawić programowo? W przeciwnym razie, jak mamy ustawić przejrzyste tło dla naszego poglądu?

To wydaje się być pytanie, które powinno być zadawane wcześniej, ale nie mogłem znaleźć odpowiedzi.

Odpowiedz

32

Podczas używania przezroczystego wzoru, po ustawieniu właściwości backgroundColor, należy ustawić właściwość opaque na NO zarówno dla widoku, jak i dla jego warstwy. Oto przykład:

UIView* paperView = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,700)]; 
paperView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"paper.png"]]; 

[paperView.layer setOpaque:NO]; 
paperView.opaque = NO; 
+0

Aha, to jest poprawna odpowiedź. Nie ustawiłem nieprzezroczystej właściwości warstwy. Dzięki! – chaiwalla

+1

Co ciekawe, musisz ustawić właściwość nieprzezroczystą * po * ustawieniu obrazu tła. Musi być częścią mechanizmu renderującego. –

+0

Dzięki Sam, miałem ten sam problem. Ponadto: ostatnie dwa wiersze tego fragmentu kodu robią to samo. – titaniumdecoy

-1

Użyj tego: myView.backgroundColor = [UIColor clearColor];

Spowoduje to ustawienie przezroczystego tła.

+0

Na tym? Chcę, aby obraz był tłem. Mam inne elementy interfejsu w widoku. – RyanJM

+0

Jeśli ustawisz kolor UIView na ClearColor, będzie on przezroczysty. W zależności od tego, gdzie są uporządkowane obrazy i inne widoki, możesz się z nimi bawić. – Istvan

0

Nigdy tak naprawdę tego nie robiłem, ale oto, co chciałbym spróbować.

Ustaw UIView's .backgroundColor na [UIColor clearColor]. Następnie umieść UIImageView zawierający twój PNG jako "najniższy" element na stosie subview UIView. Upewnij się, że kolor tła UIImageView jest również jasny.

+0

W rzeczywistości nie było wiele powodów, aby utrzymać UIView, skończyło się właśnie na zastosowaniu UIImageView, a następnie dodanie wszystkich innych elementów jako subviews tego i działa naprawdę dobrze. – RyanJM

+0

@RyanJM O tak. Czasami zapominam, że jako UIView subview, UIImageView może z radością utrzymywać subviews ... –

Powiązane problemy