AsyncDisplayKit图像显示闪烁

时间:2016-02-24 14:21:04

标签: ios asyncdisplaykit

我正在尝试将facebook的AsyncDisplayKit和DMLazyScrollView结合起来。当移动到下一个/上一个图像时,视图会闪烁,如下所示:

Display blinks

如果没有AsyncDisplayKit,则不会发生此问题。

以下是负责获取图像的代码部分:

- (UIViewController *) controllerAtIndex:(NSInteger) index {
    if (index > viewControllerArray.count || index < 0) return nil;
    id res = [viewControllerArray objectAtIndex:index];
    if (res == [NSNull null]) {
        UIViewController *contr = [[UIViewController alloc] init];

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            ASNetworkImageNode *_mediaNode = [[ASNetworkImageNode alloc] init];
            _mediaNode.backgroundColor = ASDisplayNodeDefaultPlaceholderColor();
            _mediaNode.URL = [NSURL URLWithString:[imagesUrl objectAtIndex:index]];
            _mediaNode.frame = contr.view.bounds;

            dispatch_async(dispatch_get_main_queue(), ^{
                [contr.view addSubview:_mediaNode.view];
            });
        });
        [viewControllerArray replaceObjectAtIndex:index withObject:contr];
        return contr;
    }
    return res;
}

很高兴知道是否有人解决了这个问题。

1 个答案:

答案 0 :(得分:1)

我们走了,这就是为什么它闪烁的答案:

  

将应用转换为使用AsyncDisplayKit时,常见的错误是将节点直接添加到现有视图层次结构中。这样做几乎可以保证节点在渲染时会闪烁。

async display kit docs