背景:向きとともにコンテンツの変化をアニメーション化したかったのです。私のコンテンツの位置は、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
と、アニメーションは向きの変更後に表示され、見栄えが悪くなります。