动画 UIView 背景颜色 swift
Posted
技术标签:
【中文标题】动画 UIView 背景颜色 swift【英文标题】:Animate UIView background color swift 【发布时间】:2015-12-20 17:19:42 【问题描述】:我想用随机颜色为 UIView 的背景设置动画。 这是我到目前为止所做的:
import UIKit
class ViewController: UIViewController
var timer = NSTimer()
var colours = UIColor()
override func viewDidLoad()
super.viewDidLoad()
getRandomColor()
timerF()
UIView.animateWithDuration(2, delay: 0.0, options:[UIViewAnimationOptions.Repeat, UIViewAnimationOptions.Autoreverse], animations:
self.view.backgroundColor = self.colours
, completion:nil)
func timerF()
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("getRandomColor"), userInfo: nil, repeats: true)
func getRandomColor()
let red = Float((arc4random() % 256)) / 255.0
let green = Float((arc4random() % 256)) / 255.0
let blue = Float((arc4random() % 256)) / 255.0
let alpha = Float(1.0)
colours = UIColor(colorLiteralRed: red, green: green, blue: blue, alpha: alpha)
但它只是在开始时生成一种随机颜色,并在我的动画中使用这种单一颜色。我想找到一种动画颜色的方法,所以 UIVIew 背景看起来像随机的彩虹。
【问题讨论】:
【参考方案1】:只需将动画放入getRandomColor
即可。
func getRandomColor()
let red = CGFloat((arc4random() % 256)) / 255.0
let green = CGFloat((arc4random() % 256)) / 255.0
let blue = CGFloat((arc4random() % 256)) / 255.0
let alpha = CGFloat(1.0)
UIView.animate(withDuration: 1.0, delay: 0.0, options:[.repeat, .autoreverse], animations:
self.view.backgroundColor = UIColor(red: red, green: green, blue: blue, alpha: alpha)
, completion:nil)
【讨论】:
最新的 swift 语法:self.view.backgroundColor = UIColor(red: red, green: green, blue: blue, alpha: alpha)
以上是关于动画 UIView 背景颜色 swift的主要内容,如果未能解决你的问题,请参考以下文章