2016-11-10 160 views
1

心中已经功能被使用的Xcode /斯威夫特了几个星期,现在和我目前正在对我的第一个小的iOS游戏。没有任何棘手的事情,只是试图学习的程序,并有一些乐趣。这导致我对我的问题...重复在设定的时间间隔

...我基本上想要我的应用程序中的背景图像随机(从一组数组中的值)更改,但定时。例如“每2秒钟背景图像改变”。

这就是我到目前为止所看到的一些关于NSTimer的内容,但我不太清楚如何用我已有的东西来实现它。

@IBOutlet weak var backview: UIImageView! 

let BackNames = ["Back 1", "Back 2", "Back 3", "Back 4", "Back 5", "Back 6", "Back 7"] 

let BackValue = Int(arc4random_uniform(7)) 

backview.image = UIImage (named: BackNames [BackValue]) 

所以是像我说的,我知道如何使它选择背景随机值,但是当我点击我的按钮,它才会发生。想知道如何将时间特征与我的arc4random结合。

谢谢!

回答

1

尝试此图片的动画:

var imgListArray :NSMutableArray = ["Back 1", "Back 2", "Back 3", "Back 4", "Back 5", "Back 6", "Back 7"] 
for countValue in 1...7 
    { 

     var strImageName : String = "Back \(countValue).png" 
     var image = UIImage(named:strImageName) 
     imgListArray .addObject(image) 
    } 

    self.imageView.animationImages = imgListArray; 
    self.imageView.animationDuration = 1.0 // change as per your requirement 
    self.imageView.startAnimating() 

参考:https://stackoverflow.com/a/24364736/3901620

+0

嘿谢谢你的回复! 我已经给它一个去了,但我不断收到错误(相对于最后三行) “类型'ViewController'的值没有成员'imageView'” –

+0

这是你的Imageview的backview对象,但我忘了更改这个名字。它不是UIviewcontroller的成员,但你需要定义。 – KKRocks

+0

哇快回复! 我在最后三个行改“的ImageView”以backview这似乎然而,解决这个问题一个新的问题又拿出了w.r.t. ; self.imageView.animationImages = imgListArray; 错误显示“无法指定值类型NSMutableArray来键入UIImage” –

1

写更改颜色功能和使用功能的延迟后进行选择。

func ChangeColor() { 
    BackValue = Int(arc4random_uniform(7)) 

    backview.image = UIImage (named: BackNames [BackValue]) 

    self.perform(#selector(ChangeColor), with: nil, afterDelay: 2.0) 
} 

要取消选择使用

self.classForCoder.cancelPreviousPerformRequests(withTarget: self) 
+0

谢谢!我希望这会我明白每一行但是说,如刚工作通过阅读它... 我不断收到错误消息“#selector不能引用本地函数‘更改颜色’” –

0

在Objective-C;

[NSTimer scheduledTimerWithTimeInterval:2.0 
    target:self 
    selector:@selector(timerCalled:) 
    userInfo:nil 
    repeats:YES]; 

-(void)timerCalled 
{ 
    [UIView transitionWithView:textFieldimageView 
        duration:0.2f 
        options:UIViewAnimationOptionTransitionCrossDissolve 
       animations:^{ 
        imageView.image = newImage; 
       } completion:nil]; 
} 
相关问题