Fixes #606 #610

Closed
kovpas wants to merge 4 commits from fix-606 into master
2 changed files with 19 additions and 4 deletions
Showing only changes of commit 6366ee45ab - Show all commits

View File

@@ -306,7 +306,8 @@ static YGSize YGMeasureView(
UIView *view = (__bridge UIView*) YGNodeGetContext(node); UIView *view = (__bridge UIView*) YGNodeGetContext(node);
priteshrnandgaonkar commented 2018-01-25 03:07:39 -08:00 (Migrated from github.com)
Review

Instead of pointing to the issue. Can you comment in the code, why this check is added.

Instead of pointing to the issue. Can you comment in the code, why this check is added.
priteshrnandgaonkar commented 2018-01-25 03:34:52 -08:00 (Migrated from github.com)
Review

I think !view.yoga.isUIView this check is not required. Happy to hear about your inputs

I think `!view.yoga.isUIView` this check is not required. Happy to hear about your inputs
kovpas commented 2018-01-25 03:54:45 -08:00 (Migrated from github.com)
Review

this condition practically says "we want to invoke sizeThatFits only in case if the measured view is not a UIView instance or it's a UIView, but has got children". The check is needed because we do want to invoke sizeThatFits for a UILabel (for example) that has got no subviews, but returns a correct value as a result of invocation of sizeThatFits

this condition practically says "we want to invoke `sizeThatFits` only in case if the measured view is not a `UIView` instance or it's a `UIView`, but has got children". The check is needed because we do want to invoke `sizeThatFits` for a UILabel (for example) that has got no subviews, but returns a correct value as a result of invocation of `sizeThatFits`
kovpas commented 2018-01-25 03:58:49 -08:00 (Migrated from github.com)
Review

Done.

Done.
priteshrnandgaonkar commented 2018-01-25 03:59:10 -08:00 (Migrated from github.com)
Review

Aah Got it. Can you add a comment(in brief) explaining this before the condition?

Aah Got it. Can you add a comment(in brief) explaining this before the condition?
kovpas commented 2018-01-25 04:02:34 -08:00 (Migrated from github.com)
Review

Done

Done
CGSize sizeThatFits = CGSizeZero; 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) { sizeThatFits = [view sizeThatFits:(CGSize) {
.width = constrainedWidth, .width = constrainedWidth,
.height = constrainedHeight, .height = constrainedHeight,

View File

@@ -129,6 +129,16 @@
XCTAssertEqual(longTextLabelSize.width + textBadgeView.yoga.intrinsicSize.width, containerSize.width); 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 - (void)testPreservingOrigin
{ {
UIView *container = [[UIView alloc] initWithFrame:CGRectMake(0,0,50,75)]; UIView *container = [[UIView alloc] initWithFrame:CGRectMake(0,0,50,75)];