Ios 使用限制上下移动视图
我有一段代码,允许用户在一定程度上拖动视图:Ios 使用限制上下移动视图,ios,swift,uipangesturerecognizer,Ios,Swift,Uipangesturerecognizer,我有一段代码,允许用户在一定程度上拖动视图: func handlePan(recognizer:UIPanGestureRecognizer) { let translation = recognizer.translationInView(self.view) print("the translation x:\(translation.x) & y:\(recognizer.view?.frame.minY)") if(recognizer.view
func handlePan(recognizer:UIPanGestureRecognizer) {
let translation = recognizer.translationInView(self.view)
print("the translation x:\(translation.x) & y:\(recognizer.view?.frame.minY)")
if(recognizer.view?.frame.minY > -268)
{
if let view = recognizer.view {
view.center = CGPoint(x:view.center.x,
y:view.center.y + translation.y)
}
recognizer.setTranslation(CGPointZero, inView: self.view)
}
}
现在,我还想让用户在一定程度上向下拖动视图。
我怎样才能改变函数让他这么做
目前,我可以向上移动视图,当视图达到某个高度时,视图停止,无法再向任何方向移动。尝试更改输入代码中处理移动中心的部分的条件。它可能看起来像这样(Obj-C代码段):
if(recognizer.view.frame.origin.y=0){
//移动中心的逻辑
}
这将检查两个方向上的视图位置
编辑: 要在视图超出指定范围后移动视图,始终可以检查新中心点是否在该范围内。例如
CGPoint newCenter = CGPointMake(recognizer.view.center.x, recognizer.view.center.y + translation.y);
if (newCenter.y > 256) {
newCenter.y = 256;
}
if (newCenter.y < 0) {
newCenter.y = 0;
}
CGPoint newCenter=CGPointMake(recognizer.view.center.x,recognizer.view.center.y+translation.y);
如果(newCenter.y>256){
newCenter.y=256;
}
if(newCenter.y<0){
newCenter.y=0;
}
这是一个非常简单,也许不是很聪明的解决方案,但它应该可以工作,因为视图将无法离开范围 它不起作用,它让我移动了一个非常小的数量的视图尝试将0和256值更改为其他值,这完全取决于您的视图在屏幕上的位置。这样做,当视图达到最大高度而停止时,它再也不能移动了,因为原点。y将始终保持不变
CGPoint newCenter = CGPointMake(recognizer.view.center.x, recognizer.view.center.y + translation.y);
if (newCenter.y > 256) {
newCenter.y = 256;
}
if (newCenter.y < 0) {
newCenter.y = 0;
}