2011-07-08 20 views
6

私は本当にpagecurlエフェクトが好きです。アプリ内からフィードバックメールを送信するときに問題が1つしかない場合、partialPageCurlはキャンセルボタンとメールの送信ボタンのほとんどをカバーします。ボタンはまだ機能しますが、ユーザーは表示されません。 partialPageCurlをfullPageCurlに取得する方法はありますか?それは画面からほぼ完全に外れていますか?前もって感謝します!ここで私はどのようにビューを推進しているのですか?完全なページングは​​ありますか?

- (IBAction)HelpClicked{ 

MoreHelp *More = [[MoreHelp alloc] initWithNibName:nil bundle:nil]; 

More.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentModalViewController:More animated:YES]; 

[More release]; 
} 
+0

[ここでは、どのようにページカールの情報を取得します。](http://oleb.net/blog/2010/06/app-store-safe-page-curl-animations/) – ram

+0

ページカールはあなたですiBooksアプリに表示されるものではなく、マップアプリで地図タイプを変更したときを参照してください。 – hatfinch

答えて

3

ませUIModalTransitionStyleには全ページカールの変形はありません。

これが必要な場合は、手動で手動で実装する必要があります。シンプルなモーダル・ビュー・コントローラーを使用していますが、実行可能であることはより複雑です。

このコードは、デフォルトのポートレートレイアウトでのみ機能し、必要に応じて調整する必要があります。しかし、あなたが何をする必要があるのか​​をあなたに知らせることを願っています:

UIView* view = viewController.view; 
view.frame = self.view.window.bounds; 
[UIView transitionWithView:self.view.window 
        duration:0.2 
        options:UIViewAnimationOptionTransitionCurlUp 
       animations:^(void) { 
        [self.view.window addSubview:view]; 
       } 
       completion:^(BOOL finished) { 
        [viewController.view removeFromSuperview]; 
        [viewController presentModalViewController:viewController 
                 animated:NO]; 
       }]; 
+0

私はあなたの例を使用しようと思う、私はIBOutletのUIViewを作成し、正しいxibから起動している同じxib内のUIViewとして現在のxibをコピーする必要がありますか?だから私のIBOutletの名前が "aboutView"の場合、 'viewController.view'を' aboutView.view'に置き換えて正しいでしょうか?希望は意味をなさない... – Jason

+0

@ジェイソン - 私のことを聞いてみよう。 – PeyloW

+0

これは動作しません... 'UIView * view = aboutView.view; view.frame = self.view.window.bounds; [UIViewのtransitionWithView:self.view.window 時間:0.2 オプション:UIViewAnimationOptionTransitionCurlUp アニメーション:^(ボイド){ [self.view.windowのaddSubview:ビュー]。 } 完了:^(BOOL完了){ [aboutView.view removeFromSuperview]; [aboutView presentModalViewController:viewController animated:NO]; }]; – Jason

4

アップルの開発者用ライブラリでUICatalogのコードをチェックしてください。ここにリンクがあります: http://developer.apple.com/library/ios/#samplecode/UICatalog/Introduction/Intro.html

実行時に、UITableViewからトランジションを選択します。 'Curl Image'ボタンの動作を参照してください。

curlAction:メソッドは、TransitionViewControllerクラスにあります。基本的にビュー内に2つの画像ビューがあります。前回のトランジション(カールアップまたはカールダウン)では、ページをカールしてカールさせたように他のイメージを表示します。カールイメージビューは完全に消えます。かなりの

そのPeyloWの答えと同じだけ古いsetAnimation使用しています。commitAnimationペアを

+0

私は現在何をしているのかを示すコードを追加しました。私はこれを動作させることができないようです、私は助けが必要です! – Jason

1

PeyloWさんとxs2bushの優れた提案は確かにあなたの完全なページcを与えますurl。私はあなたが部分的ではなく、完全なページカールよりも後になっていると思う。私はこれにAPIがあるとは思わないが、ちょうどうまくいくかもしれないトリックについてはどうだろうか?

PeyloWまたはxs2bushのいずれかの方法を使用しますが、継続時間がUIViewAnimationOptionTransitionCurlUpよりもわずかに短いタイマーを起動します。タイマーが切れる

、アニメーションを凍結し、アップカールさUIViewからそれを削除します。

うまくいけば
curledView.frame = [[curledView.layer presentationLayer] frame]; 
[curledView.layer removeAllAnimations]; 

、これはあなたに所望の効果が得られます。

1

私はPeyloWの回答を使用しますが、別の方法があります。 UIViewを(viewDidLoadで)表示するモーダルビューに追加し、左上隅に配置し、[UIColor clearColor]のbackgroundColorを与えます。こうすれば、ビューは画面には表示されませんが、ページカールの遷移は、画面の左上隅のビューを表示するために強制的に画面からはがれます。

関連する問題