我见过其他一些可以改变iPhone屏幕亮度的应用程序。我认为他们只是放置一个UIView并将其backgroundColor设置为黑色,然后每当用户在屏幕上滑动时,不透明度会根据手指的滑动而改变。
任何人都可以帮助我,我怎么能模仿这个功能。
答案 0 :(得分:2)
您可以在顶部添加UIView(黑色)的叠加层。
(如果您的视图中没有依赖于用户的控件(例如按钮,步进器等),那么这没关系。例如,您只需在UIView上有一个UITextView,那么您可以在上面添加黑色UIView的UITextView)
(在顶部)黑色UIView - > UITextView - >的UIView 强>
然后,您可以使用
控制黑色UIView的alpha分量- (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.
}
}
顺便说一下,将黑色UIView的alpha设置为0.0到0.7(请记住,将其设置为完全1.0会将屏幕设置为全黑。)
设置alpha:
[UIView beginAnimations:nil context:NULL]; {
[UIView setAnimationDuration:duration];
[blackView setAlpha:alphaCounter];
} [UIView commitAnimations];