在整个应用程序中始终保持 UIView 处于顶部

Posted

技术标签:

【中文标题】在整个应用程序中始终保持 UIView 处于顶部【英文标题】:Keep UIView always on top throughout the app 【发布时间】:2014-03-22 16:56:01 【问题描述】:

我想在我的 iphone 应用程序中创建一个全局导航视图(如 ios 通知视图),该视图将在从应用程序的任何屏幕向下滑动时显示。我在UIWindow 上添加了一个子视图UIViewController.View 以及UISwipeGestureUIWindow 上实现此目的,并且它按预期工作。无论何时何地检测到应用滑动手势,都会显示视图。

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

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

以上是关于在整个应用程序中始终保持 UIView 处于顶部的主要内容,如果未能解决你的问题,请参考以下文章

如何保持 gtk.window 始终处于顶层

如何强制 UIButton 始终位于顶部

如何使Chrome扩展程序窗口始终位于顶部

Qt 使应用程序在 Weston/Wayland 平台上始终处于顶部

以百分比指定两个 UIView 的约束

如何在 Android 中创建始终处于顶部的全屏覆盖活动