簡體   English   中英

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)

然而,當我向上拖動覆蓋視圖時,它從不與任何邊界相互作用,它只是直接通過。 我究竟做錯了什么? 是否可以使用邊界來停止以這種方式被用戶拖動的視圖?

當我向上拖動覆蓋視圖時,它永遠不會與任何邊界相互作用

你誤解了這個功能。 碰撞邊界適用於UIKit Dynamics負責移動視圖的時候。 拖動是指用戶負責移動視圖時。 如果您希望拖動停在某一點,則由您在手勢識別器處理程序中考慮視圖的位置,如果您不希望它移動,則不移動視圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM