From 2ea7c541a61cef7e86ab0ee2d8dbd93855423fe0 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 e14f256b5a..32b4eee832 100644 --- a/AsyncDisplayKit/ASDisplayNode.mm +++ b/AsyncDisplayKit/ASDisplayNode.mm @@ -1387,7 +1387,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