2010-11-29 10 views
0

Ich habe einige andere Apps gesehen, die die Helligkeit des iPhone-Bildschirms ändern können. Ich denke, dass sie nur eine UIView platzieren und ihre backgroundColor auf schwarz setzen, und dann, wenn der Benutzer auf dem Bildschirm streicht, ändert sich die Deckkraft je nach der Fingerbewegung.Ändern der Opazität von UIView durch Streichen

Kann mir jemand helfen, wie ich diese Funktionalität nachahmen kann.

Antwort

2

Sie können einfach eine Überlagerung eines UIView (in schwarzer Farbe) oben hinzufügen.

(Wenn Sie keine benutzerabhängigen Steuerelemente in Ihrer Ansicht haben (wie Knöpfe, Stepper, usw.), dann ist das in Ordnung, Sie haben zB ein UITextView auf UIView, dann können Sie das schwarze UIView oben hinzufügen von UITextView)

(am oberen Rand) schwarz UIView -> UITextView -> UIView

anschließend können Sie die alpha-Komponente des schwarzen UIView steuern

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 
    NSArray *touchesArray = [touches allObjects]; 

    for(int i=0; i<[touchesArray count]; i++) { 
     UITouch *touch = (UITouch *)[touchesArray objectAtIndex:i]; 
     CGPoint point = [touch locationInView:nil]; 

     //set the relationship between point and alpha. Maybe when x increases then alpha increases. You do the math. 
    } 
} 

Durch die Art und Weise unter Verwendung von Setze schwarze UIViews alpha von 0,0 bis 0,7 (denken Sie daran, die volle 1.0 Einstellung wird der Bildschirm auf volle Schwarz gesetzt.)

Einstellung alpha:

[UIView beginAnimations:nil context:NULL]; { 
    [UIView setAnimationDuration:duration]; 
    [blackView setAlpha:alphaCounter]; 
} [UIView commitAnimations]; 
Verwandte Themen