在 Swift 中实现可关闭的 UIView(不是 UIViewController!)

Posted

技术标签:

【中文标题】在 Swift 中实现可关闭的 UIView(不是 UIViewController!)【英文标题】:Implement a dismissible UIView (Not a UIViewController!) in Swift 【发布时间】:2018-10-02 09:10:49 【问题描述】:

我有一个 UIView,它向用户显示警告并出现在我的 UIViewController 的顶部。我希望用户能够通过向上/向左/向右滑动来消除此警告。在不使用第三方库的情况下如何实现?

到目前为止,我发现的所有内容都与使 UIViewController 可关闭有关。我认为从这个小视图中创建单独的 ViewController 没有任何意义。

【问题讨论】:

In ios, how to drag down to dismiss a modal?的可能重复 @Lefteris 你没有仔细阅读我的问题就给了我反对票。您认为与我重复的问题与 UIViewController 相关,而不是我的 UIView。 首先我没有投反对票,其他人投了反对票。其次,我只建议将此作为可能的重复项。 此外,如果您只想关闭 UIView 而没有任何交互式动画,那么您只需向该视图添加一个手势识别器并在手势触发时关闭它 @Lefteris 很抱歉假设您是给我投反对票的人。那是我不确定如何实现的部分,即“忽略”视图。它的工作方式是,如果用户将视图滑动到一半,它应该随着手指移动但不会被关闭,直到用户移开手指之后它才会继续离开场景。这就是我目睹的预期行为。 【参考方案1】:

您可以添加一个平移手势识别器或只是一个滑动手势识别器来实现这一点。 让gestureRecognizer = UISwipeGestureRecognizer(.....) view.addGestureRecognizer(gestureRecognizer)

【讨论】:

感谢您的回答!我不确定如何实现的部分是“关闭”视图本身。它的工作方式是,如果用户将视图滑动到一半,它应该随着手指移动但不会被关闭,直到用户移开手指之后它才会继续离开场景。

以上是关于在 Swift 中实现可关闭的 UIView(不是 UIViewController!)的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 呈现 UIView(不是 ViewController)

如何在 RealmRecyclerViewAdapter 中实现可过滤

如何在 Flutter 中实现可扩展面板?

如何在pytorch中实现可微的汉明损失?

如何在 Flutter 中实现可滚动的画布?

在 Blazor 中实现可移动 <div>