2016-11-10 156 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]; 
} 
相關問題