【问题标题】:Animating (moving) a UIView programmatically以编程方式动画(移动) UIView
【发布时间】:2018-07-12 10:35:16
【问题描述】:

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

这样改变他们的框架可以吗?

view.frame.origin.x += 5;

还是在性能方面太昂贵了?

有没有更高效的方式来移动所有这些视图?

【问题讨论】:

    标签: ios cocoa-touch uiview


    【解决方案1】:

    应该没问题。 Apple 文档表明,使用 UIGestureRecognizer 并更新框架的中心是移动视图的一种非常标准的方式。

    Apple documentation on Pan Gesture.

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

    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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多