ios - snapchat 是如何实现设置下拉菜单的?

标签 ios objective-c xcode swift

我无法理解如何着手创建向下滑动手势来关闭覆盖层,该覆盖层是另一个具有自己的对象和图像的屏幕,然后能够滑动回到原始屏幕。

我目前有一个包含 3 个屏幕的 ScrollView 。一个 |乙 | C 和我正在尝试添加一个向上的手势来调出音符和向下的手势来关闭设置屏幕(就像当你点击幽灵或向下滑动幽灵时的 snapchat)和我自己的图像,来自 B。非常理想像这样:

    D

A | B | C

    E

那么我如何创建 D & E 来由手势触发向上和向下滑动 View ...有人知道如何在 Swift 中做到这一点吗?

最佳答案

您可以通过两种方式创建它

1) 创建一个 View (code/nib) 并在按下按钮后将其 autolayout 约束设置在顶部(在 scrollView 框架之外)或识别向下滑动手势您将约束常量值更改为 scrollView 的 高度(不要忘记在更改后调用 layoutIfNeeded)。

2) 使用容器 View (我建议为此使用 nib),将您希望的所有对象和按钮添加到容器 View 。在 scrollView 中,只需像使用任何其他 View 一样使用容器来为其位置设置动画。

重要提示:请不要将 View /containerView 设置为 scrollView.contentView 的 subview ,您需要将其添加到 scrollView 的 superView 以使其留在原处

编辑

在 viewDidLoad 或其他东西中

UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(userSwipedDown:)];
swipe.direction = UISwipeGestureRecognizerDirectionDown;
[self.view addGestureRecognizer:swipe];

选择器实现

- (void)userSwipedDown:(UIGestureRecognizer *)gesture
{
  // if this method has been called then the user has swiped down
  // show the view
}

关于ios - snapchat 是如何实现设置下拉菜单的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28291441/

相关文章:

ios - 无法锁定和解锁屏幕方向

iphone - 在 Objective-C 中包装 C++ 库并不是隐藏 C++ 符号

iphone - 无法从 C++ 文件访问对象属性 (Cocos2D/Box2d)

iphone - 如何轻松地将 iPhone 应用程序转换为通用应用程序?

ios - 以编程方式更改 NIB 复选框

swift - 编译 CoreLibs Foundation 时出错

ios - 当前单元格不可见时,UICollectionView 显示错误的项目数?

ios - 当视频来自数据库时,Html5 视频标签在 ios 中不起作用

ios - 使用alamofire上传图片

ios - 从 Firebase 获取日期作为字符串转换为日期并将该日期与当前日期进行比较以查找分钟差异