我想根据图像实现底部工作表。 底部会有一个平移手势可以上下拉
我感到困惑的是:
- 我是否应该向现有 View Controller 添加一个 View 并向该 View 添加平移手势以向上和向下拉动。
- 应该创建一个新窗口并将底部工作表添加为 subview 并推送该窗口。
如果,我选择第二个选项我将如何在平移上更新窗口?
最佳答案
您不应创建新的 UIWindow
。通常一个 iOS 应用程序只有 1 个窗口。我看到的两个最佳选择是:
您可以添加 subview 和手势识别器来实现拉动。这意味着所有逻辑可能都在父
UIViewController
中。如果没有太多逻辑,并且工作表不必可重复使用,这是一个不错的选择。如果工作表内部有更多逻辑,或者工作表具有可重用性,那么最好为此创建一个单独的
UIViewController
。然后,您可以使用自定义动画和演示 Controller 来展示它。为此,查看UIViewControllerAnimatedTransitioning
和UIPresentationController
。
我以前用过第二个选项。 UIPresentationController
负责将工作 TableView 定位在屏幕底部。它还使背景变暗,并附加手势识别器来处理拉动和解雇。
您可以使用本教程开始使用 UIPresentationController
。您还可以从那里获取代码并根据您的需要进行调整:https://www.raywenderlich.com/915-uipresentationcontroller-tutorial-getting-started
关于ios - 我应该将底部工作表作为 subview 添加到当前 View Controller ,还是推送一个添加了 subview 的 UIWindow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54326009/