From c7043a193c3499809f5f47ca8ad862dd3358472a Mon Sep 17 00:00:00 2001 From: Huy Nguyen Date: Thu, 13 Aug 2015 07:17:24 +0300 Subject: [PATCH] When a new preferredFrameSize is set, previously calculated layout should be invalidated so that the size will be picked up in the next layout pass. --- AsyncDisplayKit/ASDisplayNode.mm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/AsyncDisplayKit/ASDisplayNode.mm b/AsyncDisplayKit/ASDisplayNode.mm index 02cf7b3103..03ff30a1b1 100644 --- a/AsyncDisplayKit/ASDisplayNode.mm +++ b/AsyncDisplayKit/ASDisplayNode.mm @@ -1382,7 +1382,10 @@ static NSInteger incrementIfFound(NSInteger i) { - (void)setPreferredFrameSize:(CGSize)preferredFrameSize { ASDN::MutexLocker l(_propertyLock); - _preferredFrameSize = preferredFrameSize; + if (! CGSizeEqualToSize(_preferredFrameSize, preferredFrameSize)) { + _preferredFrameSize = preferredFrameSize; + [self invalidateCalculatedLayout]; + } } - (CGSize)preferredFrameSize