以编程方式对 UIView 进行动画处理(移动)



想象一下,有很多你想要移动的同级视图(即 20 个同级视图(。您只想更改它们的 x 坐标。当用户在屏幕上滑动手指时,将实时定义动作。

这样改变他们的框架可以做到这一点吗?

view.frame.origin.x += 5;

还是性能太贵?

有没有一种性能更高的方法来移动所有这些视图?

那应该没问题。苹果文档显示,使用UIGestureRecognizer和更新框架的中心是一种非常标准的移动视图的方式。

关于 Pan Gesture 的 Apple 文档。

他们的例子似乎与我看到的使用方式略有不同,但一般概念是相同的。我个人会这样设计它:

func viewDidLoad() {
    let panGesture = UIPanGestureRecognizer(target: self, action: Selector("didDrag:"))
    moveableView.addGestureRecognizer(panGesture)
}
func didDrag(gesture: UIPanGestureRecognizer) {
    let translation = gesture.translationInView(self.view)
    customView.center.x = customView.center.x + translation.x // Customize this.
    customView.center.y = customView.center.y + translation.y
}

最新更新