Swiftgram/AsyncDisplayKit/Layout/ASOverlayLayoutSpec.h
Michael Schneider 2f99951732 [Layout] Move [ASLayoutSpec children] from std::map to NSMutableArray (#2253)
* Initial commit to move [ASLayoutSpec children] from std::map to NSMutableArray

* Add NSFastEnumeration to ASLayoutable

* ASNullLayoutSpec is a Singleton now

* Move ASLayoutSpecPrivate in Private folder

* Move to NSArrayPointer and remove ASNullLayoutSpec

* Revert "Move to NSArrayPointer and remove ASNullLayoutSpec"

This reverts commit 9ab9cf7024b1f6e1984d84fe58af2b84e84cdf94.

* Move to childAtIndex: and setChild:atIndex:
2016-09-27 19:41:45 -04:00

36 lines
1.1 KiB
Objective-C

//
// ASOverlayLayoutSpec.h
// AsyncDisplayKit
//
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory.
//
#import <AsyncDisplayKit/ASLayoutSpec.h>
NS_ASSUME_NONNULL_BEGIN
/**
This layout spec lays out a single layoutable child and then overlays a layoutable object on top of it streched to its size
*/
@interface ASOverlayLayoutSpec : ASLayoutSpec
/**
* Overlay layoutable of this layout spec
*/
@property (nullable, nonatomic, strong) id<ASLayoutable> overlay;
/**
* Creates and returns an ASOverlayLayoutSpec object with a given child and an layoutable that act as overlay.
*
* @param child A child that is laid out to determine the size of this spec.
* @param overlay A layoutable object that is laid out over the child. If this is nil, the overlay is omitted.
*/
+ (instancetype)overlayLayoutSpecWithChild:(id<ASLayoutable>)child overlay:(nullable id<ASLayoutable>)overlay;
@end
NS_ASSUME_NONNULL_END