我正在動畫ImageView以將其向上移動。一切工作正常,但是當我呈現一個ViewController的時候,ImageView交換回原來的位置。保持動畫視圖的最後位置,同時呈現一個VC
我已經嘗試過在動畫完成時設置Frame,但它仍然回到原來的位置。
繼承人我做什麼:
-(void)viewDidLoad:(BOOL)animated{
[super viewDidLoad:animated];
[self performSelector:@selector(animationCode) withObject:nil afterDelay:0.1f];
}
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
}
//Animate welcome screen
-(void)animationCode{
CGRect imageFrame = self.imageViewLogo.frame;
[UIView animateWithDuration:1.5 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{
self.imageViewLogo.center = CGPointMake(self.imageViewLogo.center.x, self.imageViewLogo.center.y-150);
}completion:^(BOOL finished){
self.imageViewLogo.frame = CGRectMake(imageFrame.origin.x, imageFrame.origin.y-150, imageFrame.size.width, imageFrame.size.height);
}];
}
任何想法如何解決這一問題?我認爲它有一些待辦事項與viewDissapering ..
是否啓用了自動佈局功能? –
是的,我需要它:S – SaifDeen
使用自動佈局時不應設置任何框架 - 當需要重繪視圖時,子視圖將恢復到由其約束定義的位置,而不是您分配的新框架。您需要通過修改約束來進行移動或調整大小。 – rdelmar