大きな画像が入った雑誌アプリを持っています。ページをめくりたいとき、ページがめくられるまでに大きな遅れがあります。そのため、前のページ、現在のページ、次のページをキャッシュしようとしますが、効果はありません。私はviewControllersを追加していると思いますが、それらは描画せずに画像ファイルを取得しているだけです。ページをめくる前に背景に画像を描く方法はありますか?いくつかのコードがあります:
MagazineViewController:
- (void)loadViews {
NSInteger pagesCount = [_pages count];
if (currentPage == 0) currentPage = 1;
if ([[NSThread currentThread] isCancelled]) return;
if (_curPage == nil) {
_curPage = [[PageViewController alloc] init];
PageView *pageView = [[PageView alloc] initWithFrame:self.view.bounds];
[pageView setPages:_pages];
[pageView setPage:currentPage];
[pageView setMagazineID:_magazineID];
[pageView buildFrames];
//[pageView setHidden:YES];
[_curPage setView:pageView];
//[_flipper addSubview:magazineView];
[pageView release];
[[NSNotificationCenter defaultCenter] postNotificationName:kPageLoadedNotification object:nil];
}
if (_prevPage == nil) {
if (currentPage > 1) {
_prevPage = [[PageViewController alloc] init];
PageView *pageView = [[PageView alloc] initWithFrame:self.view.bounds];
[pageView setPages:_pages];
[pageView setPage:currentPage - 1];
[pageView setMagazineID:_magazineID];
[pageView buildFrames];
[_prevPage setView:pageView];
//[_pageViewController.view addSubview:_prevPage.view];
[pageView release];
[[NSNotificationCenter defaultCenter] postNotificationName:kPageLoadedNotification object:nil];
}
}
if (_nextPage == nil) {
if (currentPage + 1 <= pagesCount) {
_nextPage = [[PageViewController alloc] init];
PageView *pageView = [[PageView alloc] initWithFrame:self.view.bounds];
[pageView setPages:_pages];
[pageView setPage:currentPage + 1];
[pageView setMagazineID:_magazineID];
[pageView buildFrames];
[_nextPage setView:pageView];
//[_pageViewController.view addSubview:_nextPage.view];
[pageView release];
[[NSNotificationCenter defaultCenter] postNotificationName:kPageLoadedNotification object:nil];
}
}
メソッド「buildFrame」は、画像の位置と長方形を作成し、「[self addSubView:image]」を実行します。(自己=ページの表示)
画像描画:
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
if (_image != nil) [_image drawInRect:rect];
}
一つの方法を知っていますが、それは悪い方法だと思います。前と次のビューを非表示にし、セットビューを表示し始めたとき。それで、画像をロードして回転をスピードアップする他の方法はありますか?返信のためのThx。