Swift - 呈现一个 UIView(不是 ViewController)
Swift - Present a UIView (not a ViewController)
我有两个 UIViewControllers
,我想 .present
灰色 UIView
就像你通常会呈现一个 ViewController
(自下而上出现,用户可以向下滑动解雇)。
为了更好的理解截图:
bottomBar 是一个 ContainerView
,不应通过在 VC 之间切换而改变,只有灰色 UIView
,您可以在第二张图片中看到。
我知道我可以 .present
ViewControllerB
没有动画,然后让 UIView
从屏幕外出现。但是,如果我这样做,用户将无法将 UIView
向下拖动到 dismiss
。
这就是我目前呈现 ViewControllerB
(“wishlistViewController”)的方式。
let wishlistViewController = self.storyboard?.instantiateViewController(withIdentifier: "WishlistVC") as! WishlistViewController
wishlistViewController.modalPresentationStyle = UIModalPresentationStyle.overCurrentContext
self.navigationController?.present(wishlistViewController, animated: false)
}
主要问题 是我的 UIView
不是全屏。否则我只能 .present
ViewControllerB
。但是,在我的设计中,背景图像也会由 .presenting
或 .dismissing
动画化,我不希望这样。
可能有一个非常简单的解决方案,但我无法找到仅展示的 UIView
。
感谢任何提示:)
嗯,我能想到的答案有两个:
1) 如果需要,您可以在它具有的 y 位置约束或其图层的 y 位置属性上使用 UIView.animate() 从底部对其进行动画处理。然后,您可以将 UISwipeGestureRecognizer 附加到它,这样如果您向下滑动它,它就会向下滑动。
2) 制作您想要呈现 viewController 的视图,并使用自定义模态动画呈现它们。这听起来比你想做的要多。这是 youtube 上的一个很酷的教程,它会引导您完成如何在 2 个视图控制器之间创建自定义动画过渡:
https://www.youtube.com/watch?v=B9sH_VxPPo4
但是,据我所知,那些 .dismiss 和 .present 方法 仅 用于视图控制器。希望我提供的两个选项之一对您有所帮助!
我有两个 UIViewControllers
,我想 .present
灰色 UIView
就像你通常会呈现一个 ViewController
(自下而上出现,用户可以向下滑动解雇)。
为了更好的理解截图:
bottomBar 是一个 ContainerView
,不应通过在 VC 之间切换而改变,只有灰色 UIView
,您可以在第二张图片中看到。
我知道我可以 .present
ViewControllerB
没有动画,然后让 UIView
从屏幕外出现。但是,如果我这样做,用户将无法将 UIView
向下拖动到 dismiss
。
这就是我目前呈现 ViewControllerB
(“wishlistViewController”)的方式。
let wishlistViewController = self.storyboard?.instantiateViewController(withIdentifier: "WishlistVC") as! WishlistViewController
wishlistViewController.modalPresentationStyle = UIModalPresentationStyle.overCurrentContext
self.navigationController?.present(wishlistViewController, animated: false)
}
主要问题 是我的 UIView
不是全屏。否则我只能 .present
ViewControllerB
。但是,在我的设计中,背景图像也会由 .presenting
或 .dismissing
动画化,我不希望这样。
可能有一个非常简单的解决方案,但我无法找到仅展示的 UIView
。
感谢任何提示:)
嗯,我能想到的答案有两个:
1) 如果需要,您可以在它具有的 y 位置约束或其图层的 y 位置属性上使用 UIView.animate() 从底部对其进行动画处理。然后,您可以将 UISwipeGestureRecognizer 附加到它,这样如果您向下滑动它,它就会向下滑动。
2) 制作您想要呈现 viewController 的视图,并使用自定义模态动画呈现它们。这听起来比你想做的要多。这是 youtube 上的一个很酷的教程,它会引导您完成如何在 2 个视图控制器之间创建自定义动画过渡: https://www.youtube.com/watch?v=B9sH_VxPPo4
但是,据我所知,那些 .dismiss 和 .present 方法 仅 用于视图控制器。希望我提供的两个选项之一对您有所帮助!