让UIView始终在应用程序中保持最佳状态

时间:2014-03-22 16:56:02

标签: ios objective-c uiwindow

我想在我的iphone应用程序中创建一个全局导航视图(如ios通知视图),它将在应用程序的任何屏幕上向下滑动时显示。我已在UIViewController.View上添加了一个子视图UIWindow,以便在UISwipeGesture上与UIWindow一起实现这一点,并且它的工作正如预期的那样。无论何时何地在检测到应用程序轻扫手势中都会显示该视图。

问题是当执行其他一些手势时会出现。我想仅在屏幕顶部设置滑动对全局菜单的效果。我能为此尝试什么?

1 个答案:

答案 0 :(得分:0)

设置您的手势识别器代理并实施gestureRecognizer:shouldReceiveTouch:以仅检测屏幕顶部的触摸:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
  CGPoint location = [touch locationInView:touch.window];
  BOOL touchedOnTop = location.y < 60;
  return touchedOnTop;
}

我猜您已经这样做了,但您还应该将UISwipeGestureRecognizer的方向设置为UISwipeGestureRecognizerDirectionDown

如果您的应用支持多种界面方向,则需要额外的工作。