diff --git a/AsyncDisplayKit/ASImageNode+AnimatedImage.mm b/AsyncDisplayKit/ASImageNode+AnimatedImage.mm index 6cef1f9035..da73d5bcca 100644 --- a/AsyncDisplayKit/ASImageNode+AnimatedImage.mm +++ b/AsyncDisplayKit/ASImageNode+AnimatedImage.mm @@ -18,6 +18,8 @@ #import "ASInternalHelpers.h" #import "ASWeakProxy.h" +NSString *const ASAnimatedImageDefaultRunLoopMode = NSDefaultRunLoopMode; + @implementation ASImageNode (AnimatedImage) #pragma mark - GIF support @@ -95,6 +97,10 @@ { ASDN::MutexLocker l(_displayLinkLock); + if (runLoopMode == nil) { + runLoopMode = ASAnimatedImageDefaultRunLoopMode; + } + if (_displayLink != nil) { [_displayLink removeFromRunLoop:[NSRunLoop mainRunLoop] forMode:_animatedImageRunLoopMode]; [_displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:runLoopMode]; diff --git a/AsyncDisplayKit/ASImageNode.mm b/AsyncDisplayKit/ASImageNode.mm index ad9eaaf5c8..989f4a5c55 100644 --- a/AsyncDisplayKit/ASImageNode.mm +++ b/AsyncDisplayKit/ASImageNode.mm @@ -105,7 +105,7 @@ _cropRect = CGRectMake(0.5, 0.5, 0, 0); _cropDisplayBounds = CGRectNull; _placeholderColor = ASDisplayNodeDefaultPlaceholderColor(); - _animatedImageRunLoopMode = NSDefaultRunLoopMode; + _animatedImageRunLoopMode = ASAnimatedImageDefaultRunLoopMode; return self; } diff --git a/AsyncDisplayKit/Private/ASImageNode+AnimatedImagePrivate.h b/AsyncDisplayKit/Private/ASImageNode+AnimatedImagePrivate.h index fe8fd1b730..05638fbadf 100644 --- a/AsyncDisplayKit/Private/ASImageNode+AnimatedImagePrivate.h +++ b/AsyncDisplayKit/Private/ASImageNode+AnimatedImagePrivate.h @@ -8,6 +8,8 @@ #import "ASThread.h" +extern NSString *const ASAnimatedImageDefaultRunLoopMode; + @interface ASImageNode () { ASDN::RecursiveMutex _animatedImageLock;