Summary: We still need to wait for the `YGUnitPoint` PR to be merged :) But please let me know what you think. One caveat: because of a limitation of Swift, a literal value can be automatically understood as a point-based `YGValue`, but variables have to be explicitly cast. I haven't found a way around it yet: ``` view.yoga.width = 10 // value == 10, unit == YGUnitPixel let a: CGFloat = 100 view.yoga.height = a // Compiler error view.yoga.height = YGValue(a) // works, not great ``` Closes https://github.com/facebook/yoga/pull/390 Reviewed By: emilsjolander Differential Revision: D4954021 Pulled By: maxoll fbshipit-source-id: 5eff6aeb6dd969d0d5dc557b149bb5819b0e31de
57 lines
1.4 KiB
Objective-C
57 lines
1.4 KiB
Objective-C
/**
|
|
* Copyright 2014-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the license found in the
|
|
* LICENSE-examples file in the root directory of this source tree.
|
|
*/
|
|
|
|
#import "ViewController.h"
|
|
|
|
#import <YogaKit/UIView+Yoga.h>
|
|
|
|
@implementation ViewController
|
|
|
|
- (void)viewDidLoad
|
|
{
|
|
UIView *root = self.view;
|
|
root.backgroundColor = [UIColor redColor];
|
|
root.yoga.isEnabled = YES;
|
|
root.yoga.width = YGPointValue(self.view.bounds.size.width);
|
|
root.yoga.height = YGPointValue(self.view.bounds.size.height);
|
|
root.yoga.alignItems = YGAlignCenter;
|
|
root.yoga.justifyContent = YGJustifyCenter;
|
|
|
|
UIView *child1 = [UIView new];
|
|
child1.backgroundColor = [UIColor blueColor];
|
|
child1.yoga.isEnabled = YES;
|
|
child1.yoga.width = YGPointValue(100);
|
|
child1.yoga.height = YGPointValue(100);
|
|
|
|
UIView *child2 = [UIView new];
|
|
child2.backgroundColor = [UIColor greenColor];
|
|
child2.frame = (CGRect) {
|
|
.size = {
|
|
.width = 200,
|
|
.height = 100,
|
|
}
|
|
};
|
|
|
|
UIView *child3 = [UIView new];
|
|
child3.backgroundColor = [UIColor yellowColor];
|
|
child3.frame = (CGRect) {
|
|
.size = {
|
|
.width = 100,
|
|
.height = 100,
|
|
}
|
|
};
|
|
|
|
[child2 addSubview:child3];
|
|
[root addSubview:child1];
|
|
[root addSubview:child2];
|
|
[root.yoga applyLayoutPreservingOrigin:NO];
|
|
}
|
|
|
|
|
|
@end
|