Выбор второй вкладки останавливает анимацию на первой вкладке и не перезапускается

Я создаю новый проект приложений с вкладками в Xcode 4.2 с помощью Storiesboards. В viewDidLoad я добавляю следующий код:

[UIView animateWithDuration:30 delay:0 options:UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveLinear animations:^(void) { CGRect imageViewFrame = self.scrollingImageView.frame; imageViewFrame.origin.x = CGRectGetWidth(imageViewFrame) / -2; self.scrollingImageView.frame = imageViewFrame; } completion:nil]; 

Затем я создаю соответствующее свойство UIImageView и подключаю его к IB.

 @property (nonatomic, strong) IBOutlet UIImageView *scrollingImageView; 

Я помещаю изображение в изображение, запускаю его в симуляторе или моем iPod Touch, и вижу прокрутку.

Однако, когда я выбираю вторую вкладку, а затем возвращаюсь к первой вкладке, анимация завершает то, что кажется сразу, и я не могу заставить ее перезагрузиться, даже если я поместил это в viewWillAppear. Я искал множество ответов и не могу решить проблему.

Любая помощь будет оценена по достоинству.

One Solution collect form web for “Выбор второй вкладки останавливает анимацию на первой вкладке и не перезапускается”

Похоже, что проблема, с которой вы имеете дело, специфична для контроллеров с вкладками, а не для раскадровки или конкретной анимации. Проблема в том, что при переключении на другую вкладку анимация останавливается, и когда вы возвращаетесь на первую вкладку, она не возобновляется.

viewWillAppear анимации в viewWillAppear не работает (как вы упомянули), но если вы сначала удалите анимацию в viewWillDisappear , тогда ее нужно будет снова viewWillAppear в viewWillAppear . Например

 - (void)viewWillDisappear:(BOOL)animated { [self.view.layer removeAllAnimations]; // or whatever you need to use to remove your specific animation } 

NB: Код удаления анимации должен быть в viewWillDisappear а не в viewWillUnload , поскольку viewWillUnload не вызывается при переключении вкладок.

PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.