diff --git a/AsyncDisplayKit/ASButtonNode.mm b/AsyncDisplayKit/ASButtonNode.mm index 5638e7c125..54c30ad47e 100644 --- a/AsyncDisplayKit/ASButtonNode.mm +++ b/AsyncDisplayKit/ASButtonNode.mm @@ -15,6 +15,7 @@ #import "ASBackgroundLayoutSpec.h" #import "ASInsetLayoutSpec.h" #import "ASDisplayNode+Beta.h" +#import "ASStaticLayoutSpec.h" @interface ASButtonNode () { @@ -491,9 +492,13 @@ spec = [ASInsetLayoutSpec insetLayoutSpecWithInsets:contentEdgeInsets child:spec]; } + if (CGSizeEqualToSize(self.preferredFrameSize, CGSizeZero) == NO) { + stack.sizeRange = ASRelativeSizeRangeMakeWithExactCGSize(self.preferredFrameSize); + spec = [ASStaticLayoutSpec staticLayoutSpecWithChildren:@[stack]]; + } + if (_backgroundImageNode.image) { - spec = [ASBackgroundLayoutSpec backgroundLayoutSpecWithChild:spec - background:_backgroundImageNode]; + spec = [ASBackgroundLayoutSpec backgroundLayoutSpecWithChild:spec background:_backgroundImageNode]; } return spec;