Swiftgram/AsyncDisplayKit/Private/ASStackBaselinePositionedLayout.h
Michael Schneider 611894329a [ASStackLayoutSpec] Performance improvements (#2470)
* Initial commit for ASStackLayoutSpec improvements

* Remove the lock in ASStackLayoutSpec and make the ASStackLayoutSpecStyle const

I think we don't need lock here as the style already has a lock while we set the value

* Add ASStackLayoutSpecItem  that replaces layout specific items

* Prevent baseline pass if not needed

* Update comments
2016-10-30 12:07:18 -07:00

28 lines
1.0 KiB
Objective-C

//
// ASStackBaselinePositionedLayout.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 "ASLayout.h"
#import "ASDimension.h"
#import "ASStackPositionedLayout.h"
struct ASStackBaselinePositionedLayout {
const std::vector<ASStackLayoutSpecItem> items;
const CGFloat crossSize;
const CGFloat ascender;
const CGFloat descender;
/** Given a positioned layout, computes each child position using baseline alignment. */
static ASStackBaselinePositionedLayout compute(const ASStackPositionedLayout &positionedLayout,
const ASStackLayoutSpecStyle &style,
const ASSizeRange &constrainedSize);
static BOOL needsBaselineAlignment(const ASStackLayoutSpecStyle &style);
};