2011-10-29 5 views

Odpowiedz

3

jeśli przez pokrywającą UIView chodziło Ci malowanie jej tło z obrazu, można to zrobić tak:

someView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"yourImage.png"]]; 

Można również dodać nowe UIImageView, który obejmuje swoją UIView kodem, Init Twój UIImageView z tą samą ramką Zaznacz jako swoje UIView i dodaj je jako wyeksportowanie.

+0

Doskonałe, dziękuję. Więc, nie ma sposobu, aby to zrobić z IB, prawda? – JAM

+0

Dobrze, ponieważ funkcja colorWithPatternImage jest niestandardową metodą, nie jest opcją wyświetlaną na IB. dostępne są tylko pojedyncze kolory. chociaż to samo zadanie można wykonać z IB, tworząc UIImageView, który obejmuje twój widok i ma tę samą ramkę. gdy nie chcesz, aby twój widok był zasłonięty, możesz po prostu ustawić jego .hidden właściwość na TAK/NIE. –

+0

Prawdopodobnie wybrałabym opcję 'UIImageView', ponieważ przypuszczam, że będzie bardziej zoptymalizowana niż generowanie wzorca, który Core Graphics będzie musiał następnie narysować po wykryciu kafelków itp. –

5

Z dokumentacji UIView:

oparciu o obrazy tła - dla widoków, które wyświetlają zawartość stosunkowo statyczną, należy rozważyć użycie obiektu UIImageView z Recognizers gest zamiast podklasy i rysunek obraz siebie. Alternatywnie można również użyć ogólnego obiektu UIView i przypisać obraz jako zawartość obiektu CALayer widoku.

Korzystanie drugą opcję, aby ustawić someView mieć tło yourImage.png:

someView.layer.contents = (id)[[UIImage imageNamed:@"yourImage.png"] CGImage];