mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-05-07 13:05:18 +08:00
More accurate implementation of RCTRootView's sizeThatFits:
Reviewed By: mmmulani Differential Revision: D4672788 fbshipit-source-id: 780487f2264916349e32785808a93ed6f957e471
This commit is contained in:
committed by
Facebook Github Bot
parent
2976aa12bc
commit
98798a06ae
@@ -153,10 +153,22 @@ RCT_NOT_IMPLEMENTED(- (instancetype)initWithCoder:(NSCoder *)aDecoder)
|
||||
|
||||
- (CGSize)sizeThatFits:(CGSize)size
|
||||
{
|
||||
return CGSizeMake(
|
||||
_sizeFlexibility & RCTRootViewSizeFlexibilityWidth ? MIN(_intrinsicContentSize.width, size.width) : size.width,
|
||||
_sizeFlexibility & RCTRootViewSizeFlexibilityHeight ? MIN(_intrinsicContentSize.height, size.height) : size.height
|
||||
);
|
||||
CGSize fitSize = _intrinsicContentSize;
|
||||
CGSize currentSize = self.bounds.size;
|
||||
|
||||
// Following the current `size` and current `sizeFlexibility` policy.
|
||||
fitSize = CGSizeMake(
|
||||
_sizeFlexibility & RCTRootViewSizeFlexibilityWidth ? fitSize.width : currentSize.width,
|
||||
_sizeFlexibility & RCTRootViewSizeFlexibilityHeight ? fitSize.height : currentSize.height
|
||||
);
|
||||
|
||||
// Following the given size constraints.
|
||||
fitSize = CGSizeMake(
|
||||
MIN(size.width, fitSize.width),
|
||||
MIN(size.height, fitSize.height)
|
||||
);
|
||||
|
||||
return fitSize;
|
||||
}
|
||||
|
||||
- (void)layoutSubviews
|
||||
|
||||
Reference in New Issue
Block a user