2014-06-27 46 views
0

Xcode 5,iOS 7如何按順序顯示帶有聲音的對象,最好是按照時間順序?

我試圖按順序創建/顯示幾個對象,聲音,最好是在某些指定的時機。

例如,我想創建並顯示10個標籤。 - 每次創建標籤時,播放聲音。 - 控制標籤的顯示(即時間的動畫塊) - 只有在創建了前一個標籤,播放聲音並顯示之後才創建下一個標籤。優選地在標籤之間插入延遲。

我現在有是For循環它調用 1:方法A - 實例化標籤 2:方法A調用方法B含有一個動畫塊的)播放聲音然後b)動畫顯示

我的問題是,所有10個標籤顯示如此之快,以致它看起來不連續,我只聽到一次聲音。

如何將這些鏈接在一起並控制顯示和時間?

回答

0

如果你不使用SpriteKit,那麼這可能是接近你在找什麼:

-(void)managerMethod 
{ 
    float timeBetweenEvents = 3.0; 

    for (int i = 0; i < 10; i++) { 
     NSObject *someObjectCreatedHere; 
     [self performSelector:@selector(doSomethingBasedOnThisObject:) withObject:someObjectCreatedHere afterDelay:(i * timeBetweenEvents)]; 
    } 
} 

-(void)doSomethingBasedOnThisObject:(NSObject*)thisObject{ 
    //do stuff to thisObject 
    //load stuff from thisObject 
    //etc 
} 
+0

CH - 不,是行不通的。循環執行到10,疊加'performSelectors'。基本上我已經有了同樣的問題。 – wayneh

+0

我不確定那是什麼意思,但是他們會在不同的延遲後執行,我想這就是你要求的。但是我正在編寫盲代碼,所以可能不會記住用法。但用我的簡單例子,第10個方法應該在30秒後執行? –

+0

CH - performSelector不會延遲For循環繼續執行 - 這只是在調用方法(選擇器)之前的延遲。因此,所有performSelector調用立即堆積起來,導致我已經有相同的問題。我需要順序發生,以便循環的工作原理如下:i = 0-> makeObj,完成後,遞增i並繼續...重複。 – wayneh