【发布时间】:2016-02-24 14:21:04
【问题描述】:
我正在尝试将 facebook 的 AsyncDisplayKit 和 DMLazyScrollView 结合起来。移动到下一张/上一张图片时,视图会闪烁,如下所示:
没有 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;
}
很高兴知道是否有人解决了这个问题。
【问题讨论】:
-
顺便说一下,我尝试过使用它,比如删除_mediaNode.backgroundColor,或者在没有异步调用的情况下使用它,但它仍然闪烁
-
尝试设置_mediaNode.layerBacked = false。它对我有帮助。
-
不,抱歉,仍然没有。我 AsyncDisplayKit 的连接和这个自定义的 uiview 不能很好地结合在一起。它可能需要更多调整才能协同工作。
标签: ios asyncdisplaykit