使用 UIPanGestureRecognizer 移动和缩放 UIView
Posted
技术标签:
【中文标题】使用 UIPanGestureRecognizer 移动和缩放 UIView【英文标题】:Moving and scaling UIView with UIPanGestureRecognizer 【发布时间】:2017-11-08 16:24:01 【问题描述】:我在 self.view 上有一个 UIView 添加子视图。
我想当 UIPanGestureRecognizer 到右/左/上/下是 UIView 移动和缩放跟随触摸。
当 UIView 宽度/高度小 0.5 宽度/高度时 self.view 是 UIView 将关闭。
请建议帮助我?
【问题讨论】:
【参考方案1】:假设您有 vc - ViewController 并且您的 UIView A 是 vc 的子视图。您可以将 UIPanGestureRecognizer 添加到 A。然后将 panGestureRegonizer 作为操作拖到您的 vc 中:
@IBAction func panGestureAction(_ sender: UIPanGestureRecognizer)
UIView.animateKeyframes(withDuration: 0.1, delay: 0, options: UIViewKeyframeAnimationOptions.calculationModeLinear, animations:
let location = sender.location(in: sender.view?.superview)
sender.view?.center = location
)
这里 sender.view?.superview 等于 vc.view。此代码 sn-p 将检测平移手势,然后将移动 A 以便 A.center 匹配手势的位置。请注意,持续时间 0.1 为运动提供了平滑的动画效果。
【讨论】:
非常感谢。对于使用 UIPanGestureRecognizer 移动视图,我做得很好。我遇到了规模问题。以上是关于使用 UIPanGestureRecognizer 移动和缩放 UIView的主要内容,如果未能解决你的问题,请参考以下文章
为啥使用 UIPanGestureRecognizer 移动对象时会有延迟?
UIPanGestureRecognizer ***视图未获取事件,子视图使用它们
在 UITableView 上滑动删除以使用 UIPanGestureRecognizer
在 UIPanGestureRecognizer 中使用velocityInView