iPad3 の画像を含む UIPageViewController は、すべての ViewController をメモリにキャッシュします
-
21-12-2019 - |
質問
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:, 、それはお守りとして機能しました...