[YogaKit] Fix layout view with yoga disabled #951

Closed
lucasaraujo wants to merge 3 commits from master into main
131 changed files with 2238 additions and 2839 deletions
Showing only changes of commit 81c1706f0d - Show all commits

View File

@@ -445,7 +445,7 @@ static void YGApplyLayoutToViewHierarchy(UIView *view, BOOL preserveOrigin)
const YGLayout *yoga = view.yoga; const YGLayout *yoga = view.yoga;
if (!yoga.isIncludedInLayout) { if (!yoga.isEnabled || !yoga.isIncludedInLayout) {
return; return;
} }

View File

@@ -751,4 +751,29 @@
XCTAssertEqual(view.yoga.borderEndWidth, 7); XCTAssertEqual(view.yoga.borderEndWidth, 7);
} }
- (void)testLayoutWithYogaNotEnabled
{
UIView *container = [[UIView alloc] initWithFrame:CGRectMake(0,0,50,75)];
container.yoga.isEnabled = YES;
UIView *view = [[UIView alloc] initWithFrame:CGRectZero];
view.yoga.isEnabled = YES;
view.yoga.flexBasis = YGPointValue(0);
view.yoga.flexGrow = 1;
[container addSubview:view];
UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(10, 20, 30, 40)];
[container addSubview:view2];
[container.yoga applyLayoutPreservingOrigin:YES];
XCTAssertEqual(50, view.frame.size.width);
XCTAssertEqual(75, view.frame.size.height);
XCTAssertEqual(10, view2.frame.origin.x);
XCTAssertEqual(20, view2.frame.origin.y);
XCTAssertEqual(30, view2.frame.size.width);
XCTAssertEqual(40, view2.frame.size.height);
}
@end @end