Я использую анимацию UIView, чтобы настроить «экран загрузки», а затем отключить экран загрузки после завершения NSURLSessionDataTask. Приведенный ниже код в идеале бы нарисовать прямоугольник подвид на одноцветные фоне, а затем повернуть и перевести этот прямоугольный подвид, пока DataTask не выполнит его завершение блока:анимация UIView с длительностью намного быстрее, чем указано
void getData()
{
....
NSURLSessionDataTask *dataTask = [sharedSessionMainQueue dataTaskWithRequest:req
completionHandler: ^(NSData *data,
NSURLResponse *response, NSError *error){
NSMutableArray *jsonObject = [NSJSONSerialization JSONObjectWithData:data
options:0
error:nil];
dispatch_async(dispatch_get_main_queue(), ^{
...
[UIView animateWithDuration:10 animations:^{
[_ballView removeFromSuperview];
[_tempview removeFromSuperview];
}];
}];
[self.view addSubview:_tempview];
_ballView = [[UIView alloc] initWithFrame:CGRectMake(_width/2 - 10, _height*.9, 10.0f, 80.0f)];
_ballView.center = CGPointMake(_width*.5, _height*.3);
_ballView.backgroundColor = BACKGROUND_COLOR; //[UIColor orangeColor];
[self.view addSubview: _ballView];
CGFloat angleToRotate = 20*M_PI;
[UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionAutoreverse animations:^{
[UIView setAnimationRepeatCount:100];
CGRect f = _ballView.frame;
f.origin.y = _height*.1;
_ballView.frame = f;
_ballView.transform = CGAffineTransformMakeRotation(angleToRotate);
} completion:nil];
[dataTask resume];
}
}
Но у меня есть две проблем. Сначала анимация завершается очень быстро - гораздо меньше секунды - независимо от того, какую продолжительность я укажу в любом из блоков анимации. Во-вторых, блок переводит, но он не вращается.
Любые идеи о том, что происходит? Что-то напуганное происходит с анимацией UIView внутри блоков завершения?
Спасибо!
Пожалуйста, вы можете исправить форматирование кода, я не могу видеть, где блок dispatch_async предназначен для закрытия – Nick
@Lyndsey спасибо за форматирование! –