Ну, согласно образцу Apple "MoveMe", это ( removedOnCompletion) должно работать, однако, это не кажется.
Так, добавьте эти строки после своего кода:
[self.view.layer addAnimation:animation forKey:@"moveX"];
self.view.layer.position = [animation.toValue CGPointValue];
Это гарантирует, что после выполнений анимации, слой правильно расположен.
Мог бы хотеть установить эти свойства. Они заставляют представление быть сохраненным в конце анимации.
animation.fillMode = kCAFillModeForwards;
animation.removedOnCompletion = NO;
Тогда "animationDidStop": метод может использоваться для удаления представления в конце анимации:
-(void) animationDidStop:(CAAnimation *) animation finished:(bool) flag {
if (animation == [containerView.layer animationForKey:@"moveX"]) {
// remove view here, add another view and/or start another transition
}
}
Этот укусил меня также. Вы хотите установить флаг removedOnCompletion анимации на НЕТ. Это принимает значение по умолчанию к ДА, что означает после того, как анимация завершена, это удалено, и представление возвращается к своему начальному состоянию.
Установка представления к скрытому как Rob предлагает, должен сделать это.
свойства For свойств я придерживался бы стиля ObjC 2.0 как Вы, уже имеют в Вашем коде.
set.view.hidden = YES;
Можно ли установить скрытое свойство представления на ДА?
я думаю, что это было бы:
self.view.hidden = YES;
, Но это могло бы быть:
[self.view setHidden:YES];
я оказываюсь, что являюсь довольно хромым при выяснении надлежащего способа получить доступ к свойствам свойств.