背景:我想将我的内容的变化与方向一起动画化。我的内容位置是相对于self.view.bounds
.
问题:为了使内容与边界一起动画,我需要知道视图的边界最终是什么。我可以对其进行硬编码,但我希望找到一种更动态的方式。
代码:所以所有动画都willRotateToInterfaceOrientation
按照以下方式进行:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
//centering the image
imageView.frame = CGRectMake(self.view.bounds.origin.x + (self.view.bounds.size.width - image.size.width)/2 , self.view.bounds.origin.y + (self.view.bounds.size.height - image.size.height)/2, image.size.width, image.size.height);
NSLog(@"%d",[[UIDevice currentDevice] orientation]);
NSLog(@"%f", self.view.bounds.origin.x);
NSLog(@"%f", self.view.bounds.origin.y);
NSLog(@"%f", self.view.bounds.size.width);
NSLog(@"%f", self.view.bounds.size.height);
}
边界在方向改变之前。因此,这仅在转换为 180 度时才有效。如果我要使用didRotateFromInterfaceOrientation
,动画将在看起来很糟糕的方向更改之后。