나는 사용자 이벤트에 응답하여 "긴"동작을 수행하는 올바른 방법을 배회하고 있습니다. 예를 들어,이 슬라이드를 사용하면 화면을 0.5 초 이상 움직이는 블록을 취소 할 수 있습니다. [self coreDataAction]
자체는 약 0.3 초 걸릴 수 있습니다.iPhone iOS UIView animateWithDuration 블록으로 작업을 수행하는 올바른 방법은 무엇입니까?
사용자가 애니메이션을 끝내면 액션이 완료되도록하고 싶습니다 (사용자가 실수로 다른 컨트롤러로 이동하거나 작업이 완료되었다고 생각하는 응용 프로그램을 닫지 않길 바랍니다).
여기에 [self coreDataAction];
을 넣어야합니까? 블록 위, 블록 내 또는 완료 블록에서?
//should I put it here?
CGPoint slideToCancelCenter = slideToCancel.view.center;
[UIView animateWithDuration:0.5 animations:^{
self.goToSleepButton.center = slideToCancelCenter;
[UIView setAnimationDuration:0.5];
CGPoint sliderCenter = slideToCancel.view.center;
sliderCenter.y += slideToCancel.view.bounds.size.height;
slideToCancel.view.center = sliderCenter;
//should I put it here?
// [self coreDataAction];
} completion:^(BOOL finished) {
//should I put it here?
} ];
'[UIView setAnimationDuration : 0.5];는 필요하지 않습니다. 이미 기간을 설정했습니다. 블록 기반 애니메이션을 사용하지 않는 경우 사용하십시오 (차이점은 UIView 클래스 참조). –
이 "액션"이 완료되었는지 여부를 사용자가주의해야한다고 생각하지 않습니다. 계산을 백그라운드에서 수행하고 사용자가 컴퓨터를 기다리는 것보다 더 중요한 일을 수행하도록하십시오. –