배열의 SKSpriteNodes가 있습니다 (이 질문의 목적을 위해 UIViews [개념은 같은 방법이어야합니다]). 보기에 첫 번째 요소를 추가하려고합니다. 3 초 지연을 시작하고, 두 번째 요소를 뷰에 추가하고, 3 초 지연을 시작하려고합니다. 초기 생각은 NSTimer를 사용하는 재귀 함수가 될 것입니다. 그게 최선의 방법이 될 것이라고 확신하지 못합니다. 어떤 팁?하나씩 배열의 각 요소 표시
답변
옵션 1
사용 SKAction
performSelector
과 : 다음
self.nextIndex = 0;
SKAction *action = [SKAction sequence:@[[SKAction waitForDuration:3.0],
[SKAction performSelector:@(addNextItem) onTarget:self]]];
[self runAction:action];
, addNextItem
정의 :
- (void)addNextItem
{
[self addChild:myArray[self.nextIndex++]];
if(self.nextIndex < [myArray count]) {
SKAction *action = [SKAction sequence:@[[SKAction waitForDuration:self.nextWait],
[SKAction performSelector:@(addNextItem) onTarget:self]]];
[self runAction:action];
}
}
옵션 2
당신이 블록에 익숙하다면, 당신은뿐만 아니라 것은 이러한 유형의 블록을 사용할 수 있습니다
__block NSUInteger index = 0;
void (^addItem)(void) = ^(void) {
SKNode *node = myArray[index++];
[self addChild:node];
};
SKAction *action = [SKAction sequence:@[[SKAction waitForDuration:3.0],
[SKAction runBlock:addItem],
[SKAction waitForDuration:3.0],
[SKAction runBlock:addItem],
[SKAction waitForDuration:3.0],
[SKAction runBlock:addItem],
[SKAction waitForDuration:3.0],
[SKAction runBlock:addItem]]];
[self runAction:action];
사용 블록에 대한 몇 가지 참조입니다
흠, 좋은 해결책 인 것 같습니다. 나는 블록의 개념에 상대적으로 익숙하지 않지만, 좋은 링크가 있습니까? 또한 지연 시간이 추가되는 b/w 요소를 변경할 수 있어야한다면 어떻게 될까요? 이 솔루션은 그 시나리오에 맞게 확장 될 수 있습니까? – Monkeyanator
@ Monkeyanator 흠 ... 블록은 꽤 까다 롭습니다. 그것들은 클로저의 한 형태이기 때문에 클로저에 익숙하지 않다면 가파른 학습 곡선이 생길 수 있습니다. 나는 당신을 위해 더 잘 작동 할지도 모르는 블록을 피하는 두 번째 옵션을 추가했다. – godel9
알았어, 고마워! – Monkeyanator
- 1. 각 결과를 하나씩 표시
- 2. 다음에 하나씩 요소 표시
- 3. Arraylist 요소 하나씩 표시
- 4. 이름 배열의 각 요소
- 5. 요소 배열의 각 요소에 값 배열의 각 elem을 할당합니다. jQuery
- 6. 콘솔의 각 행당 하나씩 컬렉션에 객체 표시
- 7. 조건에 따라 배열의 요소 표시
- 8. Java : 배열의 모든 요소 표시
- 9. 배열의 각 요소 뒤에 지연을 유지하는 방법?
- 10. 지그재그 배열의 각 행에서 요소 추가
- 11. 아이폰 조건부 : 하나씩 각
- 12. 동적 배열의 요소를 하나 하나씩 삭제
- 13. 요소 하나씩 증가
- 14. MVC 및 모델 디자인 - 각 json 작업마다 하나씩? 각보기마다 하나씩?
- 15. 배열을 반복하고 각 단계마다 하나씩 남겨 두십시오.
- 16. 개체 배열의 조건을 기준으로 각도 요소 표시
- 17. 배열의 각 요소에 함수 적용
- 18. 각 하나씩 아약스 요청을 제출하십시오()
- 19. 각 루프에 대해 하나씩 두십시오.
- 20. 이미지를 하나씩 표시
- 21. 배열의 시프트 요소
- 22. 한 번에 하나씩 배열 요소 출력
- 23. numpy 배열의 요소 일치
- 24. 데이터 배열의 특정 요소
- 25. 여러 배열의 요소 선택
- 26. 각 배열의 각 URL을 연결하는 방법
- 27. Pug에 배열의 인쇄 요소
- 28. 배열의 여러 요소 나누기
- 29. 계수 배열의 하위 요소
- 30. 테이블의 각 카테고리에서 레코드를 하나씩 가져 오기
for (int i = 0; i <[yourArray count]; ++ i)' – nhgrif
@nhgrif 질문은 각 요소 사이에 3 초 지연을 사용하여 각 요소를 하나씩 표시하는 방법이었습니다. – godel9
'NSTimer'의 문제점은 무엇입니까? – nhgrif