From 58e9c807b9d54c1d2d048866e592f90ee03aff56 Mon Sep 17 00:00:00 2001 From: Michael Schneider Date: Tue, 1 Nov 2016 07:58:54 -0700 Subject: [PATCH] Fix using UIActivityIndicatorView provided in view block (#2522) --- AsyncDisplayKit/ASDisplayNode.mm | 2 +- examples/Swift/Sample/TailLoadingCellNode.swift | 7 +++---- examples/Swift/Sample/ViewController.swift | 4 +++- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/AsyncDisplayKit/ASDisplayNode.mm b/AsyncDisplayKit/ASDisplayNode.mm index 45da78d382..0f567db25d 100644 --- a/AsyncDisplayKit/ASDisplayNode.mm +++ b/AsyncDisplayKit/ASDisplayNode.mm @@ -495,7 +495,7 @@ static ASDisplayNodeMethodOverrides GetASDisplayNodeMethodOverrides(Class c) } // Update flags related to special handling of UIImageView layers. More details on the flags - if (_flags.synchronous && [_viewClass isSubclassOfClass:[UIImageView class]]) { + if (_flags.synchronous && ([_viewClass isSubclassOfClass:[UIImageView class]] || [_viewClass isSubclassOfClass:[UIActivityIndicatorView class]])) { _flags.canClearContentsOfLayer = NO; _flags.canCallSetNeedsDisplayOfLayer = NO; } diff --git a/examples/Swift/Sample/TailLoadingCellNode.swift b/examples/Swift/Sample/TailLoadingCellNode.swift index e40ab6f2a6..4e995443dc 100644 --- a/examples/Swift/Sample/TailLoadingCellNode.swift +++ b/examples/Swift/Sample/TailLoadingCellNode.swift @@ -40,8 +40,6 @@ final class TailLoadingCellNode: ASCellNode { override func layoutSpecThatFits(constrainedSize: ASSizeRange) -> ASLayoutSpec { - spinner.style.flexBasis = ASDimensionMakeWithPoints(0.0) - return ASStackLayoutSpec( direction: .Horizontal, spacing: 16, @@ -59,12 +57,13 @@ final class SpinnerNode: ASDisplayNode { override init() { super.init(viewBlock: { UIActivityIndicatorView(activityIndicatorStyle: .Gray) }, didLoadBlock: nil) - - self.style.height = ASDimensionMakeWithPoints(44.0) + // Set spinner node to default size of the activitiy indicator view + self.style.preferredSize = CGSizeMake(20.0, 20.0) } override func didLoad() { super.didLoad() + activityIndicatorView.startAnimating() } } diff --git a/examples/Swift/Sample/ViewController.swift b/examples/Swift/Sample/ViewController.swift index 66ed35391b..eeae970a75 100644 --- a/examples/Swift/Sample/ViewController.swift +++ b/examples/Swift/Sample/ViewController.swift @@ -55,7 +55,9 @@ final class ViewController: ASViewController, ASTableDataSource, ASTableDelegate let rowCount = self.tableNode(tableNode, numberOfRowsInSection: 0) if state.fetchingMore && indexPath.row == rowCount - 1 { - return TailLoadingCellNode() + let node = TailLoadingCellNode() + node.style.height = ASDimensionMake(44.0) + return node; } let node = ASTextCellNode()