Fixes #606 #610
@@ -306,7 +306,8 @@ static YGSize YGMeasureView(
|
||||
UIView *view = (__bridge UIView*) YGNodeGetContext(node);
|
||||
|
||||
CGSize sizeThatFits = CGSizeZero;
|
||||
|
||||
if ([view.subviews count] > 0) {
|
||||
// Fix for https://github.com/facebook/yoga/issues/606
|
||||
if (![view isMemberOfClass:[UIView class]] || [view.subviews count] > 0) {
|
||||
sizeThatFits = [view sizeThatFits:(CGSize) {
|
||||
.width = constrainedWidth,
|
||||
.height = constrainedHeight,
|
||||
|
@@ -129,6 +129,16 @@
|
||||
XCTAssertEqual(longTextLabelSize.width + textBadgeView.yoga.intrinsicSize.width, containerSize.width);
|
||||
}
|
||||
|
||||
- (void)testSizeThatFitsEmptyView
|
||||
{
|
||||
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 200, 200)];
|
||||
view.yoga.isEnabled = YES;
|
||||
|
||||
const CGSize viewSize = view.yoga.intrinsicSize;
|
||||
XCTAssertEqual(viewSize.height, 0);
|
||||
XCTAssertEqual(viewSize.width, 0);
|
||||
}
|
||||
|
||||
- (void)testPreservingOrigin
|
||||
{
|
||||
UIView *container = [[UIView alloc] initWithFrame:CGRectMake(0,0,50,75)];
|
||||
|
Reference in New Issue
Block a user
Instead of pointing to the issue. Can you comment in the code, why this check is added.
I think
!view.yoga.isUIView
this check is not required. Happy to hear about your inputsthis condition practically says "we want to invoke
sizeThatFits
only in case if the measured view is not aUIView
instance or it's aUIView
, but has got children". The check is needed because we do want to invokesizeThatFits
for a UILabel (for example) that has got no subviews, but returns a correct value as a result of invocation ofsizeThatFits
Done.
Aah Got it. Can you add a comment(in brief) explaining this before the condition?
Done