ios - 像 facebooks 菜单幻灯片一样拖动 uiview

标签 ios cocoa-touch drag

我知道以前可能有人问过这个问题,但我见过很多方法,但我不知道哪种方法最适合我,所以请不要向我发送其他帖子的链接,除非它直接解决了我的问题。

我有一个 Controller ,它在顶部有一个 uiview(就像一个标题)(这个标题比看起来要大,因为它部分隐藏在顶部)。在该 View 上,我有一个 uibutton,现在在内部进行了触摸,显示了整个标题 View ,然后再次点击将其返回到其起始位置(使用动画更改帧)。我还希望能够拖动 View ,但只能更改 y 轴上的位置(上下拖动)...我正在考虑将 dragInside/Outside 事件添加到按钮,但这并没有给我位置手指......并且还想知道用户何时释放拖动以便 View 将动画结束到其两种可能状态(显示或部分隐藏)中的任何一种。这是“触摸开始”、“触摸移动”、“触摸结束”吗?如果是请提供代码示例。我也想用另一个 View 来做这个,但这是在左侧......同样的事情,但这个在 X 轴上移动......任何帮助表示赞赏。或者如果我只能保存最后一次触摸的 CGpoint,也许可以用拖动事件来制作,也许这样更好,还有其他建议

最佳答案

看看使用 UIPanGestureRecognizer 检测触摸 Action 。使用手势的 translationInView: 设置 View y 位置。平移是自手势开始以来的总移动量,因此您无需自己记住和累积偏移位置。

实现此功能时要担心的主要事情是限制 View 的 y 位置,这样无论用户拖动多远, View 都不会在屏幕上过高或过低。

关于ios - 像 facebooks 菜单幻灯片一样拖动 uiview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22130535/

相关文章:

ios - CADisplayLink 导致 touchesBegan 和 touchesEnded 之间存在延迟?

iphone - 如何在 iPhone 的 TableCell 中获取 TextField 的位置?

javascript - 在 jQuery 的帮助下拖放

slider - Swiper 触摸事件 - 启用点击但禁用拖动

c++ - “共享应用程序”是 "cocos2d::ccapplication"的私有(private)成员

objective-c - 拖放 UIScrollView 上的 UIImageView

iOS 模拟器在启动时崩溃

ios - 如何在 Objective-C 中正确同步对实例变量的访问

ios - 在UIWebView中拦截图像中的链接

wpf - 用拇指拖动 wpf 窗口 : can it be transparent?