如何向UIButton SWIFT添加重力

像素9

因此,我尝试向4个UIButton添加重力,但它们并未下降,我将此代码添加到确实加载的视图中,我不明白为什么它不能很好地工作。这是代码:

//initialize the animator
    var animator = UIDynamicAnimator(referenceView: self.view)
    //add gravity
    let gravity = UIGravityBehavior(items: [redButton!, greenButton!, blueButton!, cameraButton!])
    let direction = CGVectorMake(0.0, 1.0)
    gravity.gravityDirection = direction
    animator.addBehavior(gravity)

我的按钮是redButton,greenButton,blueButton和cameraButton,我还应用了跌落方向,但是当我运行应用程序时,它们只是静态的。那么有可能向UIButtons添加重力吗?

BaseZen

您是在本地为函数声明动画制作器。当函数返回时,动画器会从内存中释放,并且所有动画都将停止(实际上viewDidLoad()在生命周期的早期返回,动画就永远不会开始)。

声明为:

var animator: UIDynamicAnimator!

范围

类范围意味着将其放在类的大括号内:

class Foo {
    var thisVariableIsAtClassScopeAndPersistsAcrossMethods: Int

    func bar() {
        var thisVariableIsAtLocalScopeAndDisappearsWhenFunctionReturns: String
    }
}

并且只在初始化它viewDidLoad()

animator = UIDynamicAnimator(referenceView: self.view)

lazy由于self尚不可用,因此无法在类范围内初始化它,而不会引起麻烦。)

**编辑最终答案**

聊天后,我们解决了被误解的答案,现在我们有了:

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var redButton: UIButton!
    @IBOutlet weak var greenButton: UIButton!
    @IBOutlet weak var blueButton: UIButton!
    @IBOutlet weak var cameraButton: UIButton!

    // Declare the animator at class scope so it doesn't get released prematurely.
    var animator: UIDynamicAnimator!

    override func viewDidLoad() {
        super.viewDidLoad()
        //add gravity
        let gravity = UIGravityBehavior(items: [redButton, greenButton, blueButton, cameraButton])
        let direction = CGVectorMake(0.0, 1.0)
        gravity.gravityDirection = direction
        animator.addBehavior(gravity)

        // other viewDidLoad setup code to set attributes of buttons
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何向UIButton添加动作

来自分类Dev

如何向UIButton动态添加操作

来自分类Dev

如何在gform_pre_render()中添加重力窗体字段

来自分类Dev

如何在gform_pre_render()中添加重力窗体字段

来自分类Dev

如何使用SDWebImage向UIButton添加“前景”图像

来自分类Dev

如何向json添加重复键?

来自分类Dev

向UIButton添加模糊效果

来自分类Dev

向UIButton添加子视图

来自分类Dev

向UIButton添加左右填充

来自分类Dev

如何以编程方式向重力形式添加条目

来自分类Dev

如何以编程方式向重力形式添加条目

来自分类Dev

如何使用xcode接口构建器向UIButton添加填充?

来自分类Dev

如何使用xcode接口构建器向UIButton添加填充?

来自分类Dev

如何向另一个类中的 UIButton 添加操作

来自分类Dev

如何避免在MongoDB中向数组添加重复对象

来自分类Dev

如何在 Jetty 中向端口绑定添加重试

来自分类Dev

向 Wordpress 插件添加重写规则

来自分类Dev

如何添加重置功能?

来自分类Dev

Swift:如何继承UIButton?

来自分类Dev

如何在akka http中向POST请求添加重试?

来自分类Dev

如何忽略在java中向mysql表添加重复的电话号码

来自分类Dev

我无法在pygame中为我的玩家添加重力

来自分类Dev

使用 didSet 向 UITableViewCell 中的 UIButton 添加目标

来自分类Dev

如何添加属性到UIButton?

来自分类Dev

如何使用晶格添加重叠的直方图

来自分类Dev

如何添加重定向到https?

来自分类Dev

向音频播放器添加重复选项

来自分类Dev

防止在 Java 中向 JTable 添加重复数据

来自分类Dev

如何在Swift(iOS 7)中向UIAlertView添加操作