UICollisionBehavior 边界不起作用
UICollisionBehavior boundary not working
我在导航控制器中有一个视图。
然后我向该视图添加一个子视图并偏移其原点高度,使其仅覆盖屏幕的一半(另一半溢出屏幕底部)。
我希望能够向上拖动此视图,但当它到达导航栏底部时它会停止。
我正在使用 UIPanGestureRecognizer
来处理视图的拖动,这工作正常,但它似乎不会在边界处停止。
这是我正在使用的代码:
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)
然而,当我向上拖动覆盖视图时,它不会与任何边界交互,它只是直接穿过。我究竟做错了什么?是否可以使用边界来阻止用户以这种方式拖动的视图?
when I drag the covering view up it never interacts with any boundary
你误解了这个功能。碰撞边界用于 UIKit Dynamics 负责移动视图的情况。拖动是指 user 负责移动视图。如果您希望拖动在某个点停止,则由您在手势识别器处理程序中考虑视图的位置,如果您不希望它移动则不要移动视图。
我在导航控制器中有一个视图。
然后我向该视图添加一个子视图并偏移其原点高度,使其仅覆盖屏幕的一半(另一半溢出屏幕底部)。 我希望能够向上拖动此视图,但当它到达导航栏底部时它会停止。
我正在使用 UIPanGestureRecognizer
来处理视图的拖动,这工作正常,但它似乎不会在边界处停止。
这是我正在使用的代码:
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)
然而,当我向上拖动覆盖视图时,它不会与任何边界交互,它只是直接穿过。我究竟做错了什么?是否可以使用边界来阻止用户以这种方式拖动的视图?
when I drag the covering view up it never interacts with any boundary
你误解了这个功能。碰撞边界用于 UIKit Dynamics 负责移动视图的情况。拖动是指 user 负责移动视图。如果您希望拖动在某个点停止,则由您在手势识别器处理程序中考虑视图的位置,如果您不希望它移动则不要移动视图。