iPad3 の画像を含む UIPageViewController は、すべての ViewController をメモリにキャッシュします

StackOverflow https://stackoverflow.com//questions/24012444

質問

ARCではカスタマイズしてみました UIPageviewController として MyPageViewController。追加しています MyPageViewController childViewControllerとして RootViewcontroller. 。トランジションタイプはカールとして設定されます。

ImageViewControllers 次のように MyPageViewController の viewController として追加されます。

ImageViewController *startingViewController1 = [self.storyboard instantiateViewControllerWithIdentifier:@"ImageViewController"];
ImageViewController *startingViewController2 = [self.storyboard instantiateViewControllerWithIdentifier:@"ImageViewController"];

NSArray *viewControllers = @[startingViewController1, startingViewController2];
[self.myPageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:NULL];

self.myPageViewController.delegate = self;
self.myPageViewController.dataSource = self.pageModelController;
[self addChildViewController: self.myPageViewController];
[self.view addSubview: self.myPageViewController.view];
[self.myPageViewController didMoveToParentViewController:self];

それぞれ ImageViewController には 4 つの異なる UIImageView があります。これらの画像は HD 画像である可能性があるため、キャッシュを避けるために、次を使用して画像を設定しています。

[UIImage imageWithContentsOfFile:]

しかし、pageViewController でページをめくるたびに、メモリが 15 MB 増加していることがわかりますが、この RootViewController 全体をポップバックしない限り、メモリは減りません。

ただし、これは iPad3 でのみ発生し、iPad2 ではメモリが増加しません。どちらもiOS 7.1がインストールされています。

MyPageViewController には、2 つの viewControllers(イメージビューコントローラー) を使用して一度に追加されます。

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

ビュー内でDidUnloadの ImageViewController, 、すべてのビューとオブジェクトを次のように設定しています nil;

つまり、iPad3 は一度追加された ViewController を解放しないのに対し、iPad2 は以前の ViewController を解放し、現在の ViewController のみを保持しているのだと思います。

それは本当に同じですか、それともこれに対する他の回避策はありますか...

誰かがこれについて私を助けてくれませんか..私はこの問題に一週間以上費やしています。あらゆる種類の提案があればもっと役に立ちます。

役に立ちましたか?

解決

ごめんなさい、また私の間違いでした。メイン画像の後ろに別のPhotoFrame画像を設定しています。そのイメージビューは直接 UIImage データを取得します。代わりに画像のパスを参照するべきでした。

以前はそれに気づきませんでした。に変更したとき UIImage imageWithContentsOfFile:, 、それはお守りとして機能しました...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top