【发布时间】:2023-04-03 12:05:01
【问题描述】:
我需要通过PanGestureRecognizer 拖动 UIView(我知道该怎么做),但我不知道如何限制它。需要从顶部进行一些填充,并且如果与四个侧面之一(左侧,右侧,顶部(这里是填充)和设备底部)发生碰撞,请停止拖动并且您不能超过 - 或者像顶部一样的 1px 填充, 任何。 :)
我试过这个:https://github.com/andreamazz/UIView-draggable 但如果我通过 cagingArea 设置限制区域,iPad (Air) 会滞后。移动也不顺畅,我认为原生的 PanGestureRecognizer 最好,只需要限制区域,请问您知道我该怎么做吗? :)
我正在用 Swift 写作。并且还找到了一些相关的话题,比如这个 -> Use UIPanGestureRecognizer to drag UIView inside limited area 但我不知道insideDraggableArea 在做什么?..
非常感谢程序员!
【问题讨论】:
-
链接已被编辑,它检查被拖动的视图是否在某些范围内。女巫在你的情况下,填充顶部,左侧......等等。
static func insideDraggableArea(point : CGPoint) -> Bool { return point.x > 50 && point.x < 200 && point.y > 20 && point.y < 400 } -
谢谢 Lucho,这个例子现在可以工作了,没用。滞后了这么多。我正在尝试我的 iPad Air。我想,那是因为每一帧代码都会检查所有的位置和条件,对吧?我需要找到一些正常工作的顺利解决方案。
标签: ios xcode swift uiview uipangesturerecognizer