我需要通过拖动 UIViewPanGestureRecognizer
(我知道该怎么做),但我不知道如何在限制下做到这一点。需要从顶部进行一些填充,并且如果与设备的四个边(左、右、顶部(这里是填充)和底部)之一发生碰撞,请停止拖动,并且不能像顶部那样超过 - 或 1px 填充, 任何。 :)
我尝试过这个:https://github.com/andreamazz/UIView-draggable https://github.com/andreamazz/UIView-draggable但如果我通过 cagingArea 设置限制区域,iPad (Air) 就会出现滞后。而且移动不顺畅,我认为原生的PanGestureRecognizer是最好的,只需要限制区域,你知道我该怎么做吗? :)
我正在用 Swift 写作。并且还发现了一些相关主题,比如这个 ->使用 UIPanGestureRecognizer 将 UIView 拖动到有限区域内 https://stackoverflow.com/questions/28938135/use-uipangesturerecognizer-to-drag-uiview-inside-limited-area但我不知道什么insideDraggableArea
正在做?..
非常感谢各位程序员!
我在项目中遇到同样的问题,
尝试这个,
1) 初始化平移手势
let panRec = UIPanGestureRecognizer()
2) 将 PanGesture 添加到您的 UIView
override func viewDidLoad() {
....
....
panRec.addTarget(self, action: "draggedView:")
yourview.addGestureRecognizer(panRec)
yourview.userInteractionEnabled = true
....
....
}
3)设置对draggedView函数的限制
func draggedView(sender:UIPanGestureRecognizer){
println("panning")
var translation = sender.translationInView(self.view)
println("the translation x:\(translation.x) & y:\(translation.y)")
//sender.view.
var tmp=sender.view?.center.x //x translation
var tmp1=sender.view?.center.y //y translation
//set limitation for x and y origin
if(translation.x <= 100 && translation.y <= 50 )
{
sender.view?.center=CGPointMake(tmp!+translation.x, tmp1!+translation.y)
sender.setTranslation(CGPointZero, inView: self.view)
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)