2012-09-12 13 views
6

フリップアニメーションの実行中にUIPageViewControllerのシャドウカラーを変更しようとしています。 しかし、常にそれは白色のみを表示しています。 フリップサイド背景色の色を白(黒またはセピア)のように他の色に変更する方法。 iBookは同じことをしています。シャドウの背景を他の色に変更する方法

私は、下の画像には色を変えたいという白いbgがあると言います。

スクリーンショット:UIPageControlは、デフォルトではこの機能をサポートしていません

color-- pagecontrol選択ページの可視性の場合 enter image description here

+0

私の画面の添付ファイルをご覧くださいhttp://www.imageurlhost.com/images/xo7tttfxq3s6fdhk60s.png を撃っ – Nishu

+0

このチェックアウト:http://stackoverflow.com/questions/1079011を/ iphone-flipping-views-show-a-white-background –

+0

@Ganee希望u見た目の画像添付。 http://www.imageurlhost.com/images/xo7tttxp3s6fdhk60s.png 私はUIPageViewControllerを使用していますので、アニメーションは既にそこにあります。 イメージで言及しているように、バックカラーを変更する必要があります。 – Nishu

答えて

0
- (void) renderPageAtIndex:(NSUInteger)index inContext:(CGContextRef)ctx { 
UIImage *image = [images objectAtIndex:index]; 
CGRect imageRect = CGRectMake(0, 0, image.size.width, image.size.height); 
CGAffineTransform transform = aspectFit(imageRect, 
              CGContextGetClipBoundingBox(ctx)); 
CGContextConcatCTM(ctx, transform); 
CGContextDrawImage(ctx, imageRect, [image CGImage]); 
} 
+0

aspectFit何をするか(imageRectを、 CGContextGetClipBoundingBox(CTX)) ;メソッド – Nishu

-2

。独自のページコントロールを作成し、独自に図面を作成する必要があります。

+0

私はUIPageControlではなくUIPageViewControllerを使用しています。 UIPageViewController私はiBookのようなアプリケーションを開発していますが、白い影の後ろのページカールアニメーションはデフォルトでそこにあります。私はそのbgの色を変更する必要があります。 – Nishu

+0

サンプル画像リンク。白いbgがあるページカールをしながら、私のアプリケーションは夜間モードをサポートしているので、私は黒の色を変更する必要があります。 http://www.techotopia.com/index.php/Image:Iphone_ios_5_uipageviewcontroller_app.jpg – Nishu

+0

http://www.imageurlhost.com/images/xo7tttfxq3s6fdhk60s.png – Nishu

7

私はしばらくの間同じことをやろうとしていましたが、やっとそれを理解しました。背景色を他の色に設定することはできませんが、UIPageViewControllerが背面に追加する別の表示を提供することができます。それがここの秘密です。アップルのドキュメントから

Spine location        Double sided    What to pass 
UIPageViewControllerSpineLocationMid    YES    Left and Right Page. 
SpineLocationMin or SpineLocationMax    YES    Front and Back of the page. 
SpineLocationMin or SpineLocationMax    NO    Front page only. 

そうでは、基本的に、あなたはyesに両面プロパティを設定して、両方のデータソース法上の2つのviewControllersを提供する必要があります。

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController; 
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController; 

各メソッドが呼び出されます追加する新しいページごとに2回したがって、通常は返すviewControllerと、ページめくりアニメーションを実行するときに新しいviewControllerを追加する必要があります。

"BackViewController"にはあなたの責任があります。あなたは単に黒い視野を持つこともできますし、必要に応じてフロントページのスクリーンショットを撮って、そこから鏡像を得ることもできます。

どのように動作するか分かり次第、難しくありません。私がここで見ることができる唯一の問題は、黒い背景または黒い背景を持つものを追加すると、ページをめくるときの影が白になることです。なぜ私は考えていませんが、これは多くの異なるアプリで起こっていることを見てきました。だから、アップルにとってはこれが正常な動作だと思います。しかし、それは本当に奇妙に見えます。

EDIT:

理解しやすいので、私は、サンプルコードを追加しました。 https://github.com/mattabras/DoubleSidedPageViewController

Abras

+0

あなたはいくつかのコードを投稿してください - 私は理論を得ることができますが、それが実際にどのように動作するか見ることができません。私は1つの 'ページ'しか持っていません - 両面ページ... – daidai

+0

@ Abras-あなたが詳細を述べたり、多分例を投稿したりすることは可能でしょうか?私はあなたが役に立たないと言ったことを実装しようとしました。ありがとうございました。 – johnnelm9r

+1

ここでサンプルコードを入手できます。 https://github.com/mattabras/DoubleSidedPageViewController – Abras

関連する問題