표시기를 빈 양식 필드에 애니메이션으로 적용하려고하므로 아래 방법을 사용하여 애니메이션을 위치에 적용하고 애니메이션을 반전하고 반복하십시오. 시뮬레이터에서는 정상적으로 작동합니다. 3GS에서는 완성 블록이 호출 될 때 플리커가 올바르게 발생하는 것처럼 보입니다. 표시기는 원래 위치에서가 아니라 중간 위치에 잠시 표시됩니다.자동 반전을 사용하여 UIView 애니메이션 깜박임
왜 이런 일이 발생했는지에 대한 의견이 있으십니까? 감사.
- (void)bounceFormIndicator {
if (formIndicator.superview == nil) {
return;
}
int bounceDistance = 24;
[UIView animateWithDuration:0.6
delay:0
options:UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionAutoreverse | UIViewAnimationOptionAllowUserInteraction
animations:^{
CGRect indicatorFrame = formIndicator.frame;
indicatorFrame.origin.x += bounceDistance;
formIndicator.frame = indicatorFrame;
}completion:^(BOOL finished){
CGRect indicatorFrame = formIndicator.frame;
indicatorFrame.origin.x -= bounceDistance;
formIndicator.frame = indicatorFrame;
[self bounceFormIndicator];
}];
}
아직 해결되지는 않았지만 해결 방법을 찾았습니다. UIViewAnimationOptionRepeat 옵션을 사용하고 완료 블록을 완전히 제거합니다. – brianpartridge