首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UICollisionBehavior边界不工作

UICollisionBehavior边界不工作
EN

Stack Overflow用户
提问于 2015-07-09 19:32:43
回答 1查看 770关注 0票数 3

我在导航控制器内看到了一个视图。

然后,我在这个视图中添加一个子视图,并抵消它的原始高度,这样它只覆盖了屏幕的一半(另一半从屏幕底部溢出)。我希望能够将这个视图向上拖动,但是当它到达导航栏的底部时,它会被停止。

我使用一个UIPanGestureRecognizer来处理视图的拖动,它工作得很好,但它似乎不会停留在边界上。

这是我使用的代码:

代码语言:javascript
复制
bottomNavbarY = UIApplication.sharedApplication().statusBarFrame.size.height + self.navigationController!.navigationBar.frame.size.height

view.addSubview(pullover.view)
pullover.view.frame.origin.y = pulloverOffset

var animator = UIDynamicAnimator(referenceView: view)
var collision = UICollisionBehavior(items: [pullover.view])
collision.translatesReferenceBoundsIntoBoundary = true
collision.addBoundaryWithIdentifier("upper", fromPoint: CGPointMake(0, bottomNavbarY), toPoint: CGPointMake(UIScreen.mainScreen().bounds.size.width, bottomNavbarY))
animator.addBehavior(collision)

然而,当我拖动覆盖视图时,它从不与任何边界交互,它只是直接通过。我做错了什么?是否可以使用边界来停止用户以这种方式拖动的视图?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-09 19:35:27

当我拖动覆盖视图时,它从不与任何边界交互。

你误解了这个特征。碰撞边界是当UIKit动力学负责移动视图时的边界。拖动是用户负责移动视图的时候。如果希望拖动在某个点停止,则由您在手势识别器处理程序中考虑视图的位置,如果不希望视图移动,则不要移动视图。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31326643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档