먼저 디스패치 큐에서 다음 코드를 호출하면 완료 블록이 호출되지 않습니다. UIView 애니메이션 완료 블록이 호출되지 않습니다.
- (void)viewDidLoad
{
[super viewDidLoad];
dispatch_queue_t initialize_queue;
initialize_queue = dispatch_queue_create("init", NULL);
dispatch_async(initialize_queue, ^{
_onInit = YES;
_isRunning = NO;
[self startProgress];
_onInit = NO;
});
}
- (void)startProgress
{
if (!_isRunning) {
_isRunning = YES;
NSLog(@"Starting");
[UIView animateWithDuration:0.5 animations:^{
self.progressStatusButton.hidden = NO;
self.activityLeftConstraint.constant = _activityLeftSpace;
self.activityWidthConstraint.constant = _activityWidth;
self.buttonWidthConstraint.constant = _progressStatusButtonWidth;
self.buttonLeftConstraint.constant = _progressStatusButtonLeftSpace;
self.activityView.alpha = 1.0;
}completion:^(BOOL finished){
NSLog(@"Start Animating");
[self.activityView startAnimating];
}];
}
}
내가 dispatch_aync
방법을 삭제하고 viewDidLoad
에 startProgress
방법을 실행
완료 블록이라고합니다. 내 코드를 어떻게 수정해야합니까?
dispatch_async
을
dispatch_async(dispatch_get_main_queue(),..)
,
으로 변경하려고 시도했지만 완료 블록이 호출되었지만 비동기식으로
startProgress
메서드를 실행하고 싶습니다.
알려 주시기 바랍니다.
어쩌면 dispatch_async (initialize_queue ... – Wonil