support flexible top container
Summary: The main container that gets called `applyLayoutPreservingOrigin:` is using its size as a fixed bounding box. In some cases it's preferrable to let it accomodate its contents. This diffs extends `applyLayoutPreservingOrigin:` by adding an additional parameter which can be used to sepecify whether width and/or height are fixed or flexible. Feel free to suggest better names than `YGDimensionFlexibility` & co. Let me know if you prefet to kill the API without flexiblity specifier - I'll codemod everything then. Reviewed By: dshahidehpour Differential Revision: D4929702 fbshipit-source-id: f128f244140b4a54d8ce3b3f4edddbb9756f8fdf
This commit is contained in:
committed by
Facebook Github Bot
parent
f8a2903d02
commit
849de89a58
@@ -235,6 +235,20 @@ YG_PROPERTY(CGFloat, aspectRatio, AspectRatio)
|
||||
YGApplyLayoutToViewHierarchy(self.view, preserveOrigin);
|
||||
}
|
||||
|
||||
- (void)applyLayoutPreservingOrigin:(BOOL)preserveOrigin dimensionFlexibility:(YGDimensionFlexibility)dimensionFlexibility
|
||||
{
|
||||
CGSize size = self.view.bounds.size;
|
||||
if (dimensionFlexibility & YGDimensionFlexibilityFlexibleWidth) {
|
||||
size.width = YGUndefined;
|
||||
}
|
||||
if (dimensionFlexibility & YGDimensionFlexibilityFlexibleHeigth) {
|
||||
size.height = YGUndefined;
|
||||
}
|
||||
[self calculateLayoutWithSize:size];
|
||||
YGApplyLayoutToViewHierarchy(self.view, NO);
|
||||
}
|
||||
|
||||
|
||||
- (CGSize)intrinsicSize
|
||||
{
|
||||
const CGSize constrainedSize = {
|
||||
|
Reference in New Issue
Block a user