将ViewController显示为高度可变的弹出窗口

时间:2018-12-01 13:33:12

标签: ios swift popup nslayoutconstraint

我正在应用程序中实现自定义弹出窗口。此弹出窗口是使用具有清晰backgroundColor的ViewController创建的,我确保将ViewController显示在当前视图上方,如下所示:

popupController.modalPresentationStyle = .overCurrentContext

然后我应用一个覆盖框架并具有0.5alpha的黑色backgroundColor的视图。这使我能够创建真正的弹出效果。我使用bottomAnchor(但没有topAnchor)将弹出窗口限制在底部,因此所有内容都根据需要显示在底部。现在,在弹出窗口中,用户有两个选择。弹出窗口如下所示:

popup

整个ViewController是具有autoLayout约束的UIViewController。初始视图看起来还不错。但是,如果我单击一个按钮,我希望ViewController中的内容发生变化,并且高度自动适应。

进行此操作的最佳方法是什么?我现在尝试隐藏初始弹出窗口(popupInitialView.isHidden = true)并显示所选选项的视图。然后,我更改为topAnchor设置和激活的NSLayoutConstraint的常量。

感觉有点不对劲。完成这项工作很麻烦,而且感觉不正确。所以我想知道你们如何实现这样的功能。一个ScrollView并更改contentOffset.x? UIPageViewController?我目前还缺少其他东西吗?

谢谢!

0 个答案:

没有答案