私は多くのサブビューを持つMainViewControllerを持っています。基本的には、2つのペインに分かれています。ペインはクリップボードのようにデザインされています。ボタンを押して、クリップボードの「紙」に部分的なカールを付けて、その下にページを表示したいと思います。iOS UIView、UIViewではなく部分ページのカールを使用
これは完全なモーダルViewControllerプレゼンテーションの状況ではありません。
私は次のコードで働いているが、結果はファンキーです:
FlipView *flipView = [[FlipView alloc] init];
[self setFlipView:flipView];
[flipView setHidden:YES];
[flipView setFrame:[[self WhereAmI] frame]];
[[self view] addSubview:flipView];
[[self view] bringSubviewToFront:[self WhereAmI]];
[flipView setHidden:NO];
CATransition *animation = [CATransition animation];
[animation setDelegate:self];
[animation setDuration:1.0];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[animation setType:@"pageCurl"];
[animation setFillMode:kCAFillModeForwards];
[animation setEndProgress:0.9];
[animation setRemovedOnCompletion:NO];
[[self WhereAmI] setHidden:YES];
[[[self WhereAmI] layer] addAnimation:animation forKey:@"pageCurlAnimation"];
基本的に、私はカール、プログラム的に私の新しいビューをロードし、その後、現在表示されているビューの後ろにそれをスライドさせ、しようとしています上にあるビューを上に移動して、下にあるビューを表示します。部分カールアニメーションが多少得られますが、カールアップしている「ページ」は不透明ではなく、奇妙です。また、私がビューとラベルを隠すように設定していないときに、それらがカールしているのを見ても、あなたはまだそれらも "奇妙な"下に見えます。さらに、私は新しいビューのためにXIBに入れたUILabelを見ません。
どのような考えですか?
ありがとうございます!
いいえ、私は実用的な解決策を持っていますが、それは私が望んでいたものではありません。私はまだ私の元の質問への解決策を見つけ出すのが大好き、しかし、ここで私は今のところやっているものだと思います:
- 私の「ベース」ビューの背景画像がスパイラルバウンドノートブックのイメージです。
- 他のすべてのビューの背景イメージは、ページカールのスクリーンショットです。 (「背景画像」とは、私はpatternImageで作成UIColorを意味する。)
ビューを移行するためのコードは次のとおりです。
- (IBAction)NavigationTabSelected:(id)sender { // Flipping views is driven by a SegmentedControl int selected = [[self NavigationTabsSegmentedControl] selectedSegmentIndex]; int current = [[self ViewArray] indexOfObject:[self ActiveFlipView]]; UIView *newFlip = [[self ViewArray] objectAtIndex:selected]; BOOL up = selected > current; [UIView animateWithDuration:1.0 animations:^{ [UIView setAnimationTransition:(up)?UIViewAnimationTransitionCurlUp:UIViewAnimationTransitionCurlDown forView:[self RightView] cache:YES]; [[self ActiveFlipView] removeFromSuperview]; [[self RightView] addSubview:newFlip]; } completion:^(BOOL finished){ [self setActiveFlipView:newFlip]; }]; }
は、あなたが見ることができるように、右側にあるタブを現在のタブは「カールアップ」を生成し、現在のタブの左側のタブは「カールダウン」を生成する。それは私の望むものではありませんが、私の目的に役立ちます。
もっと良いアイデアを教えてください。
UIViewの 'transitionFromView'メソッドと' transitionWithView'メソッドは見たことがありますか? 2-3行のコードで、あなたが望むことをすることができるはずです。 – Rog