在 Swift 中为对象设置动画?

Posted

技术标签:

【中文标题】在 Swift 中为对象设置动画?【英文标题】:Animate objects in Swift? 【发布时间】:2014-06-08 20:50:57 【问题描述】:

在swift中,我正在将一个对象过渡到视图中,我需要它滑入或淡入。如何在我的程序中获得这种类型的动画?

我在没有 IB(接口生成器)的情况下以编程方式制作了所有视图元素

有没有我可以参考的文档?我找不到。

【问题讨论】:

与 Objective C 中的方法相同。 我找不到任何我想要的动画类型。我只是想要一个简单的滑入或淡入。不是 OpenGL 游戏。 查找UIView 的动画方法。它们在 Swift 中的工作方式与在 Obj-C 中的工作方式相同。 对于幻灯片或淡入淡出动画,您需要 CABasicAnimationCAKeyframeAnimation,您可以在其中通过动画设置 x/y 位置或不透明度。请参阅说明如何在 Objective-C 中执行此操作的文档或其他问题,其中有很多。如果您遇到困难,请使用您尝试执行的操作以及对无效操作的说明更新此问题。 【参考方案1】:

我习惯使用 [UIView animateWithDuration ...],但我发现一开始将块语法切换到 Swift 有点棘手。这是一个快速的惰性代码:

view.alpha = 0.0
UIView.animateWithDuration(0.25, animations: 
    view.alpha = 1.0
, completion: 
    (value: Bool) in
    println(">>> Animation done.")
)

【讨论】:

你能告诉我如何连续制作动画吗?? 或许可以试试***.com/questions/28644335/…【参考方案2】:

或者动画从屏幕左侧出现的位置:

// some variables for the UIView
let width = 200
let height = 100
let yPosition = 10

// create view and position it offscreen to the left    
let view = UIView()

// you could have also used the new more verbose Swift way of making a CGRect:
// CGRect(x: xValue, y: yValue, width: widthValue, height: heightValue)
view.frame = CGRectMake(-width, yPosition, width, height)
view.backgroundColor = UIColor.blueColor() // etc...

// animation position over 1.0 second duration
UIView.animateWithDuration(1.0, animations: 

    view.frame = CGRectMake(0, yPosition, width, height)
)

如果您对 UIView 动画 API 完全陌生,我在这里写了一篇文章,其中涵盖了一系列 swift 动画选项:http://mathewsanders.com/prototyping-ios-iPhone-iPad-animations-in-swift/

【讨论】:

【参考方案3】:

斯威夫特 3 & 4 请添加必要的对象,如 tableView

import UIKit

class SecondViewController: UIViewController,UITableViewDelegate,UITableViewDataSource 


    @IBOutlet var tabl: UITableView!
    var name = ["tony","abu"]
    override func viewDidLoad() 
        super.viewDidLoad()

    

    override func didReceiveMemoryWarning() 
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    
    func numberOfSections(in tableView: UITableView) -> Int 
     return 1
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
        return name.count
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        let cell = UITableViewCell()
        cell.textLabel?.text = name[indexPath.row]
        return cell
    
    override func viewWillAppear(_ animated: Bool) 

        tabl.center.x = self.view.frame.width/5

        UIView.animate(withDuration: 1.0, delay: 0, usingSpringWithDamping: 1.0, initialSpringVelocity:0.45, options: [], animations: (
            self.tabl.center.x = self.view.frame.width/3
            //self.buttonAction.center.x = self.view.frame.width/2
        ), completion: nil)



    


【讨论】:

【参考方案4】:

Apples Core 动画在这里看到https://developer.apple.com/library/Mac/DOCUMENTATION/Cocoa/Conceptual/CoreAnimation_guide/Introduction/Introduction.html 这非常有趣。 youtube吧

【讨论】:

链接已损坏,因此 -1

以上是关于在 Swift 中为对象设置动画?的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中为 UIButton 设置动画

如何在 Swift 中为 NSLayoutConstraint 设置动画?

如何在搅拌机中为对象中的颜色设置动画

如何在swift中为边框颜色变化设置动画

在 Swift 中为选定的 UIPickerView 行设置动画背景颜色

在 swift iOS 中为 3 个点设置动画