Ios 按时间间隔重复功能?

Ios 按时间间隔重复功能?,ios,swift,function,animation,Ios,Swift,Function,Animation,我有一个函数,可以使我视图中的图像前后“抖动”。我可以设定我想要它摇晃多长时间和速度,但我真正需要的是它每10秒摇晃一次 这是我正在使用的函数,它只是在viewDidLoad中调用一次,以使其工作一次 func shakeView(){ let shake:CABasicAnimation = CABasicAnimation(keyPath: "position") shake.duration = 0.4 shake.repeatCount = 5

我有一个函数,可以使我视图中的图像前后“抖动”。我可以设定我想要它摇晃多长时间和速度,但我真正需要的是它每10秒摇晃一次

这是我正在使用的函数,它只是在viewDidLoad中调用一次,以使其工作一次

    func shakeView(){

    let shake:CABasicAnimation = CABasicAnimation(keyPath: "position")
    shake.duration = 0.4
    shake.repeatCount = 5
    shake.autoreverses = true
    shake.speed = 9.0

    let from_point:CGPoint = CGPointMake(homeLogo.center.x - 5, homeLogo.center.y)
    let from_value:NSValue = NSValue(CGPoint: from_point)

    let to_point:CGPoint = CGPointMake(homeLogo.center.x + 5, homeLogo.center.y)
    let to_value:NSValue = NSValue(CGPoint: to_point)

    shake.fromValue = from_value
    shake.toValue = to_value
    homeLogo.layer.addAnimation(shake, forKey: "position")
}
我还没有幸运地发现我如何才能做到这一点。如果您能提供任何帮助或指出正确的方向,我们将不胜感激。

请使用定时器

[NSTimer scheduledTimerWithTimeInterval:10目标:自选择器:@selector(functionName)userInfo:nil repeats:YES]

为此使用计时器

[NSTimer scheduledTimerWithTimeInterval:10目标:自选择器:@selector(functionName)userInfo:nil repeats:YES]

查看此文档:

有一个名为
scheduledTimerWithTimeInterval
的函数,可以在指定的每个时间间隔执行选择器

迅速:

样本:

override func viewDidLoad() {
    super.viewDidLoad()
    //Swift 2.2 selector syntax
    var timer = NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: #selector(MyClass.update), userInfo: nil, repeats: true)
    //Swift <2.2 selector syntax
    var timer = NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: "update", userInfo: nil, repeats: true)
}
override func viewDidLoad(){
super.viewDidLoad()
//Swift 2.2选择器语法
var timer=NSTimer.scheduledTimerWithTimeInterval(0.4,目标:self,选择器:#选择器(MyClass.update),userInfo:nil,repeats:true)
//Swift查看此文档:

有一个名为
scheduledTimerWithTimeInterval
的函数,可以在指定的每个时间间隔执行选择器

迅速:

样本:

override func viewDidLoad() {
    super.viewDidLoad()
    //Swift 2.2 selector syntax
    var timer = NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: #selector(MyClass.update), userInfo: nil, repeats: true)
    //Swift <2.2 selector syntax
    var timer = NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: "update", userInfo: nil, repeats: true)
}
override func viewDidLoad(){
super.viewDidLoad()
//Swift 2.2选择器语法
var timer=NSTimer.scheduledTimerWithTimeInterval(0.4,目标:self,选择器:#选择器(MyClass.update),userInfo:nil,repeats:true)

//Swift您不会将该要求添加到动画中,而是创建一个带有所需句点的
NSTimer
,并使用它触发每个新动画


您可以将动画和计时器代码移动到自定义图像视图类中,这样它就可以提供一个良好的开始和停止动画界面,那么视图控制器就不需要被计时器管理代码复杂化(如果您要同时拥有多个动画图像视图).

您不会将该要求添加到动画中,而是创建一个带有所需句点的
NSTimer
,并使用它触发每个新动画


您可以将动画和计时器代码移动到自定义图像视图类中,这样它就可以提供一个良好的开始和停止动画界面,这样您的视图控制器就不需要被计时器管理代码复杂化(如果您要同时拥有多个动画图像视图)。

您需要使用NSTimer。使用以下代码:

override func viewDidLoad() {
    super.viewDidLoad()
    var helloWorldTimer = NSTimer.scheduledTimerWithTimeInterval(10.0, target: self, selector: Selector("shakeView"), userInfo: nil, repeats: true)
} 

您需要使用NSTimer。请使用以下代码:

override func viewDidLoad() {
    super.viewDidLoad()
    var helloWorldTimer = NSTimer.scheduledTimerWithTimeInterval(10.0, target: self, selector: Selector("shakeView"), userInfo: nil, repeats: true)
}