2013-04-01 6 views
6

私のプロジェクトでは、スクロールのためにUIViewControllerとしてUIPageControlを使用しています。私はこのチュートリアル(ARCとストーリーボードを使用)を使用しました:http://www.wannabegeek.com/?p=168とソースコード:https://github.com/wannabegeek/PageViewController ご覧のとおり、プロジェクトには3 ViewControllersがあり、CustomPagerViewControllerには子として追加されています。そのプロジェクトでは、追加されたのは3つだけですViewControllersですが、私のプロジェクトでは3つ以上のViewControllersを取得しました。また、別のテキスト、画像、ラベルなどで再利用しています。問題は、プロジェクトでは、がロードされたときにロードされているので、一度にロードするのではなく、この問題にどのように対処できるのか、別の方法を探しています。UIPageControlにViewControllerをロードする別の方法

+0

このリンクを参照してください。 http://stackoverflow.com/questions/2942636/how-can-i-change-the-color-of-pagination-dots-of-uipagecontrol – Tirth

+0

私はどのように私はビューコントローラを置くことができる方法を探していますUIPageControlを使用すると、子としてすべてを追加することなく、多くのメモリが必要になります。 –

+0

答えを追加する前に:3つのビューすべてで画像を使用しますか?インスツルメントの実装では、InstrumentsがAll Allocationsについて何を言っていますか? –

答えて

0

コントローラの割り当てをこのように最適化しないでください。明らかにメモリ内のビューコントローラを保持することはスペースを取るが、それほど多くはないと私は信じている。

ここでは、コントローラとそのビューの違いがあります。ビューは自分自身を画面に表示するために大量のメモリを消費することがありますが、iOSは必要なくなったときにこのメモリを解放するための独自のメカニズムを既に持っています(ビューが画面にない/ウィンドウを持たない) 。

iOSビューコントローラは、自分自身でビューメモリを解放するために使用されましたが(この動作は[UIViewControllers didReceiveMemoryWarning]にありました)、これはiOS 6ではこれ以上行われませんでした。あなたのアプリ。このメソッド(またはdealloc)でこれらのビューを整理するにもかかわらず、画面内のビューを表示するために使用される(グラフィカルな)リソースのほとんどがiOSによって既に解放されている可能性があるため、多くのメモリを節約しません。メモリ量は0に近づくかもしれません。

あなたのケースでは、私はthis guideを使ってPagerViewControllerを適切なiOSコンテナコントローラに変換します。キーは、以下のメソッドを呼び出すことです:

あなたのニーズに応じて正しい順序で。あなたの場合、scrollViewDidScrollメソッドでこれらを追加/削除できます。この方法でそれらを使用して、Appleの魔法を起こさせてください。

UIPageViewControllerを使用すると、すぐに使用できる優れた機能が得られます。

関連する問題