iOSで2つのビューをアニメーション化しているときに奇妙なエラーが発生しています。私の目標は、カスタム "スプリットビュー"から切り替えることです。iOS UIView setFrameアニメーションエラー
UIImageViewのY値に奇妙な "バンプ"が見えて、今私はかなりの間それを修正する方法が不思議に思っています。
これは、ビューコントローラのインタフェースです:私はやって両方のビュー保存のviewDidLoadで
@interface VideoSharing_Pad : UIViewController
{
IBOutlet UIView *videoCallView;
IBOutlet UIImageView *imageView; //This is "inside" mediaView
IBOutlet UIView *mediaView;
CGRect mediaRect;
CGRect videoCallRect;
CGRect imageRect;
}
:
//Get frames from XIB
mediaRect = mediaView.frame;
videoCallRect = videoCallView.frame;
imageRect = imageView.frame;
を、これは私が分割表示から切り替えたいときに実行されるコードですフルスクリーンモード:
- (IBAction)toggleFullScreen:(id)sender
{
if (iScreenMode == callAndShareMedia) {
CGRect fullScreenRect = CGRectMake(0, 0, 1024, 768);
CGRect dissapearRect = CGRectMake(0, - videoCallView.bounds.size.height, videoCallView.bounds.size.width, videoCallView.bounds.size.height);
[UIView animateWithDuration:1.0
delay:0.1
options: UIViewAnimationCurveEaseOut
animations:^{
[videoCallView setFrame:dissapearRect];
[imageView setFrame:fullScreenRect];
[mediaView setFrame:fullScreenRect];
}
completion:^(BOOL finished){
}];
iScreenMode = onlyShareMedia;
return;
}
else if (iScreenMode == onlyShareMedia)
{
[UIView animateWithDuration:1.0
delay:0.1
options: UIViewAnimationCurveEaseOut
animations:^{
[videoCallView setFrame:videoCallRect];
[mediaView setFrame:mediaRect];
[imageView setFrame:imageRect];
}
completion:^(BOOL finished){
}];
iScreenMode = callAndShareMedia;
return;
}
}
本当にありがとうございます。どうもありがとう!
これはXIBのスクリーンショットです:
あなたはスクリーンショットと.hファイルから見ることができるよう、ImageViewのはUIViewの内部で他のUIView、videoCallViewは、mediaViewと呼ばれ、 1つはダミーの3つのピクチャです。
私は 'videoCallView'と' mediaView'と 'imageView'の関係をよく理解していません。スクリーンショットと、どの領域がどのビューオブジェクトに対応しているかを説明するオーバーレイアノテーションを持つことを助けます。 – barley
@ barleyこれはXIBのスクリーンショットです:http://i.imgur.com/xl0PU.pngスクリーンショットと.hファイルからわかるように、imageViewはmediaViewというUIViewの中にあります。もう1つのUIViewは、 videoCallViewは3つのダミー画像を持つものです。 –