UIView animateWithDuration ведет себя по-разному на iOS 13 - PullRequest
4 голосов
/ 08 октября 2019

Следующий код работал успешно до iOS12.2, которая сдвигала сетку календаря, пока она не скрылась.

 -(void) hideCalendarGrid {


     [UIView animateWithDuration:10.0 delay:0 options:UIViewAnimationOptionAllowAnimatedContent animations:^{ //iwashere animation wrong iOS13. duration set to 10.0 for testing originally it was 0.2

         CGRect collectionViewRect   = self.collectionView.frame;
         collectionViewRect.origin.y -= collectionViewRect.size.height;
         self.collectionView.frame   = collectionViewRect;

         CGRect tableViewRect        = self.tableView.frame;
         tableViewRect.origin.y      -= collectionViewRect.size.height;
         tableViewRect.size.height   += collectionViewRect.size.height;
         self.tableView.frame        = tableViewRect;

     } completion:^(BOOL finished){
         if (finished) {
             // Reset frame but make it invisible
             self.collectionView.hidden = YES;
             self.collectionView.frame = self.collectionViewRectWhenVisible;
             self.collectionViewHeightConstraint.constant = 0.0f;
             self.isCalendarOn = NO;
             [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"isCalendarOn"];
             [[NSUserDefaults standardUserDefaults] synchronize];
             [self configureNavigationBar];
             self.backButton.enabled = YES;
             self.backButton.hidden  = NO;
             if (![[NSUserDefaults standardUserDefaults] boolForKey:@"doneTutorial3.0CalendarGrid"]) {
                 [self showHowToHideCalendarGridTutorial];
             }
         }
     }];
 }

Демонстрация на iOS 12.2 (работает как положено) https://youtu.be/sU5rbnujh3U

Демонстрация на iOS 13 (не так, как я хочу) https://youtu.be/mk3AFsh5FCw

Кто-нибудь знаеткак заставить анимацию работать как iOS12 на iOS13?

...