【问题标题】:UIPageView - curling is slowUIPageView - 卷曲很慢
【发布时间】:2012-07-11 18:18:53
【问题描述】:

我有一个包含大图的杂志应用。当我想翻页时,在翻页之前会有很大的延迟。所以我尝试缓存上一页、当前页和下一页但没有效果。我想我正在添加 viewControllers 但那些只是获取图像文件而不绘图。有什么方法可以在翻页之前在背景中绘制图像?有一些代码:

杂志视图控制器:

- (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];
}

我知道一种方法该怎么做,但我认为这是不好的方法。只是隐藏上一个和下一个视图,当我开始将设置视图变为可见时。那么有没有其他方法可以加载图像并加快转弯速度?谢谢回复。

【问题讨论】:

    标签: ios ios5 uiview uiimage page-curl


    【解决方案1】:

    我有解决方案...加载上一个和下一个视图,将它们添加到父视图并使用方法 sendSubviewToBack 将它们发送回。太棒了!

    【讨论】:

      猜你喜欢
      • 2012-03-07
      • 2016-02-26
      • 1970-01-01
      • 1970-01-01
      • 2013-04-04
      • 2021-02-07
      • 2021-04-12
      • 1970-01-01
      • 2010-12-10
      相关资源
      最近更新 更多