ここでは基本的に画面調光器を作成しています。画面に黒いビューを配置し、UIPanGestureRecognizer を使用して、ユーザーが上下にスクロールするかどうかに基づいて不透明度を調整しています。コードは次のとおりです。
- (IBAction)dimScreen:(UIPanGestureRecognizer *)sender {
//Get translation
CGPoint translation = [sender translationInView:self.view];
CGFloat distance = translation.y;
//add a fraction of the translation to the alpha
CGFloat newAlpha = self.blackScreen.alpha + distance/self.view.frame.size.height;
//check if the alpha is more than 1 or less than 0
if (newAlpha>1) {
newAlpha = 1;
}else if (newAlpha<0.0){
newAlpha = 0.0;
}
self.blackScreen.alpha = newAlpha;
//reset translation to get incremental change
[sender setTranslation:CGPointZero inView:self.view];
}
下にパンすると、不透明度は 1.0 になり、まだ調整できます。不透明度が 0 になるまでパンすると、まったくパンできなくなります。dimScreen: セレクターが呼び出されなくなります。誰でもこの問題の原因を説明できますか?