내가 뭘 하려는지 타이머가 똑딱 때 레이블을 움직이는 것입니다. 창 기반 응용 프로그램이 있습니다.코어 애니메이션 및 NSTimer
- while 루프에서 코어 애니메이션을 시도했지만 프로그램이 멈췄습니다.
- 타이머 (NSTimer)에 의해 트리거 된 핵심 애니메이션을 시도했지만 아무 일도 발생하지 않습니다.
문제점 : 프로그램을 디버깅했는데 모든 것이 잘 보였지만 모든 명령문이 실행 중이지만 아무 일도 발생하지 않았습니다. 루프의 코어 애니메이션이나 타이머에 의해 트리거 된 애니메이션이 허용되지 않는다고 생각했습니다. 다른 방법이 있습니까?
무엇 내가 가진 것은 :
drawingTimer = [NSTimer scheduledTimeWithTimeInterval:60.0 target:self
selector:@selector(slideWords) userInfo:nil repeats:NO];
-void (slideWords){
randomNumber = 1 + arc4Random()%2;
if(randomNumber = 1){
Redlabel.alpha = 1.0;
RedLabel.frame = CGRectMake(0, -50, 320, 100);
[UIWindow animateWithDuration:5.0 animations:^{
Redlabel.alpha = 1.0;
Redlabel.frame = CGRectMake(0,300,320,100);
}completion:^(BOOL finished){
[UIWindow animateWithDuration:0.5 delay:0.5 options:0 animations:^{
Redlabel.alpha = 0.0;
}completion:^(BOOL finished){
}];
}];
}
if(randomNumber = 2){
GreenLabel.alpha = 1.0;
GreenLabel.frame = CGRectMake(0, -50, 320, 100);
[UIWindow animateWithDuration:5.0 animations:^{
GreenLabel.alpha = 1.0;
GreenLabel.frame = CGRectMake(0,300,320,100);
}completion:^(BOOL finished){
[UIWindow animateWithDuration:0.5 delay:0.5 options:0 animations:^{
GreenLabel.alpha = 0.0;
}completion:^(BOOL finished){
}];
}];
}
}
모든 것을 읽지는 않았지만 조건은 과제를 수행하는 중입니다. 둘 다 true로 평가되고 randomNumber를 변경합니다. 또한 알파 레벨은 1로 지정되고 애니메이션은 1로 설정됩니다 (작업 없음). – danh
난 그냥 RedLabel.alpha에 줄을 적어 라 ..... 나머지; 프로그램이 잘 작동합니다. 문제는 NSTimer에 의해 또는 루프에서 트리거되어야합니다. 그래서 대안을 찾고 있습니다. –
또한 두 레이블의 프레임을 동일한 rect로 설정 한 다음 동일한 rect로 애니메이션을 적용합니다. 하나는 항상 숨겨져 있습니다. 처음부터 다시 시작하고 근본적으로 단순화해야한다고 생각합니다. 루프가 없거나 타이머가없고 무작위가 아닙니다. 그냥 한 레이블을 페이드하고 이동하는 방법 (어쩌면 임시 단추를 추가하여 트리거)을 가져 오십시오. 그런 다음 두 번째 레이블을 작성하십시오. 그런 다음 원하는 두 가지 임의의 경우를 하드 코드 한 다음 임의성을 추가하십시오. 너 거기 갈거야! – danh