2011-03-13 17 views
6

Chciałbym narysować obramowanie blasku wokół UIView, który jest mniej więcej 5px od samego UIView się.Utwórz blask wokół UIView

Proszę, czy możesz mi powiedzieć, jak mogłem to osiągnąć?

Odpowiedz

13

Najprawdopodobniej najprościej jest stworzyć cień, ale użyć jasnego koloru zamiast ciemnego. Szczegóły cienia można znaleźć tutaj: How do I draw a shadow under a UIView? i here.

Coś takiego powinno dostać toczenia piłki:

- (void)drawRect:(CGRect)rect 
{ 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSaveGState(context); 
    CGContextSetShadowWithColor(context, CGSizeMake(0, 0), 10, 
           [UIColor whiteColor].CGColor); 
    [super drawRect:rect]; 
    CGContextRestoreGState(context); 
} 

Aktualizacja: Po prostu próbowałem to. Będziesz musiał użyć tego kodu w superspadzie świecącego widoku, aby działał poprawnie.

3

Pierwszą rzeczą, którą chciałbym spróbować, jest osadzenie UIView w UIView, który ma obraz poświaty. Jeśli efekt blasku jest tylko obrazem, tworzysz UIView zawierający obraz blasku, który jest 10 px wyższy i szerszy niż otaczający UIView. Pozwoli to na rozszerzenie 5 pikseli na wszystkich 4 stronach. Możesz to wszystko zrobić szybko i łatwo za pomocą programu Interface Builder.

Jeśli chcesz, aby efekt blasku wyglądał naprawdę fajnie, biorąc pod uwagę tworzenie kolekcji obrazów żarowych, które wyświetlane jako sekwencja pokażą rodzaj poruszającego się efektu blasku. Następnie można użyć tej kolekcji obrazów w UIView i włączyć animację. Wszystkie elementy sterujące UIView mają wbudowaną obsługę animacji.

Mam nadzieję, że pomogło to. Powodzenia.