我应该将底页作为子视图添加到当前视图控制器,还是应该在添加了SubView的情况下推送UIWindow?

时间:2019-01-23 11:16:28

标签: ios swift uipangesturerecognizer uiwindow

我想根据图像实现底页。 底部将具有平移手势以向上和向下

我很困惑的是:

  • 我应该向现有视图控制器中添加视图,还是向该视图添加平移手势以进行上下拉动。
  • 应创建一个新窗口,并将底部工作表添加为子视图并推动该窗口。

如果,我选择第二个选项如何更新平移窗口

enter image description here

1 个答案:

答案 0 :(得分:1)

您不应创建新的UIWindow。通常,一个iOS应用只有1个窗口。我看到的两个最佳选择是:

  1. 您可以添加子视图和手势识别器以实现拉动。这意味着所有逻辑都可能在父UIViewController中。如果没有太多逻辑,并且不必重新使用工作表,那么这是一个不错的选择。

  2. 如果工作表内部有更多逻辑,或者工作表具有可重用性,那么为此最好创建一个单独的UIViewController。然后,您可以使用自定义动画和演示控制器来演示此内容。为此,请查看UIViewControllerAnimatedTransitioningUIPresentationController

我以前使用过第二个选项。 UIPresentationController负责将图纸视图放置在屏幕底部。它还可以使背景变暗,并附加手势识别器以处理拉动和拉开。

您可以使用本教程来开始使用UIPresentationController。您还可以从那里获取代码,并使其适应您的需求:https://www.raywenderlich.com/915-uipresentationcontroller-tutorial-getting-started