iOS: fix when flexlayout's width is most,it cannot wrap child view properly
This commit is contained in:
parent
13ba43cb19
commit
037f5afbe0
@ -47,7 +47,22 @@ - (CGSize)sizeThatFits:(CGSize)size {
|
|||||||
if (self.yoga.isLeaf) {
|
if (self.yoga.isLeaf) {
|
||||||
return CGSizeZero;
|
return CGSizeZero;
|
||||||
}
|
}
|
||||||
return [self.yoga intrinsicSize];
|
YGValue maxWidth = self.yoga.maxWidth;
|
||||||
|
YGValue maxHeight = self.yoga.maxHeight;
|
||||||
|
if (maxWidth.unit == YGUnitPoint) {
|
||||||
|
self.yoga.maxWidth = YGPointValue(MIN(maxWidth.value, size.width));
|
||||||
|
} else {
|
||||||
|
self.yoga.maxWidth = YGPointValue(size.width);
|
||||||
|
}
|
||||||
|
if (maxHeight.unit == YGUnitPoint) {
|
||||||
|
self.yoga.maxHeight = YGPointValue(MIN(maxHeight.value, size.height));
|
||||||
|
} else {
|
||||||
|
self.yoga.maxHeight = YGPointValue(size.height);
|
||||||
|
}
|
||||||
|
CGSize ret = [self.yoga intrinsicSize];
|
||||||
|
self.yoga.maxWidth = maxWidth;
|
||||||
|
self.yoga.maxHeight = maxHeight;
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@ -248,11 +263,11 @@ - (void)requestLayout {
|
|||||||
self.view.yoga.marginHorizontal = YGValueZero;
|
self.view.yoga.marginHorizontal = YGValueZero;
|
||||||
CGSize size = self.view.yoga.intrinsicSize;
|
CGSize size = self.view.yoga.intrinsicSize;
|
||||||
if (self.view.yoga.maxWidth.unit != YGUnitPoint
|
if (self.view.yoga.maxWidth.unit != YGUnitPoint
|
||||||
||(self.view.yoga.maxWidth.unit == YGUnitPoint && self.view.yoga.maxWidth.value > size.width)){
|
|| (self.view.yoga.maxWidth.unit == YGUnitPoint && self.view.yoga.maxWidth.value > size.width)) {
|
||||||
self.view.yoga.maxWidth = YGValueUndefined;
|
self.view.yoga.maxWidth = YGValueUndefined;
|
||||||
}
|
}
|
||||||
if (self.view.yoga.maxHeight.unit != YGUnitPoint
|
if (self.view.yoga.maxHeight.unit != YGUnitPoint
|
||||||
||(self.view.yoga.maxHeight.unit == YGUnitPoint && self.view.yoga.maxHeight.value > size.height)){
|
|| (self.view.yoga.maxHeight.unit == YGUnitPoint && self.view.yoga.maxHeight.value > size.height)) {
|
||||||
self.view.yoga.maxHeight = YGValueUndefined;
|
self.view.yoga.maxHeight = YGValueUndefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user