Skip to content

Commit ac603e8

Browse files
author
@欧柏泉
committed
Release V1.3.0
1 parent 9b2545d commit ac603e8

25 files changed

+761
-178
lines changed

CHANGELOG.md

+15
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,21 @@
33

44
---
55

6+
## [V1.3.0](https://github.com/youngsoft/MyLinearLayout/releases/tag/1.3.0)(2016/12/21)
7+
8+
#### Added
9+
1. 添加对布局位置类`MyLayoutPos`的方法:`lBound,uBound`用来设置视图的位置最小最大的依赖,`lBound,uBound`方法只有在相对布局中的子视图设置才有效。
10+
2. 添加了Demo:RLTest5ViewController这个例子专门用来演示相对布局中的子视图设置lBound,uBound方法的例子。
11+
12+
#### Fixed
13+
1. 修复路径布局`MyPathLayout`中设置`wrapContentWidth``wrapContentHeight`为YES时的计算错误的情况。
14+
2. 修复线性布局`MyLinearLayout`里面均分间距和均分视图两个方法可能导致均分不正确的BUG。
15+
3. 修复了相对布局`MyRelativeLayout`中如果设置了`topPadding`而子视图的`topPos`设置为数值时`topPadding`不起作用的BUG。
16+
4. 修复了相对布局`MyRelativeLayout`中子视图的高度设置为`flexedHeight`时计算可能不正常的问题。
17+
18+
#### Changed
19+
1. 优化了相对布局和框架布局时的性能。
20+
621
## [V1.2.9](https://github.com/youngsoft/MyLinearLayout/releases/tag/1.2.9)(2016/12/5)
722

823
#### Added

MyLayout.podspec

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Pod::Spec.new do |s|
1616
#
1717

1818
s.name = "MyLayout"
19-
s.version = "1.2.9"
19+
s.version = "1.3.0"
2020
s.summary = "MyLayout is an iOS UI framework integrates the functions with Android,AutoLayout,SizeClass,HTML CSS float and flexbox,UIView UITableView."
2121

2222
s.description = <<-DESC
@@ -75,7 +75,7 @@ Pod::Spec.new do |s|
7575
# Supports git, hg, bzr, svn and HTTP.
7676
#
7777

78-
s.source = { :git => "https://github.com/youngsoft/MyLinearLayout.git", :tag => "1.2.9" }
78+
s.source = { :git => "https://github.com/youngsoft/MyLinearLayout.git", :tag => "1.3.0" }
7979

8080

8181
# ――― Source Code ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #

MyLayout.xcodeproj/project.pbxproj

+6
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
18014BA51C9079DA0088133B /* MyDimeScale.m in Sources */ = {isa = PBXBuildFile; fileRef = 18014BA41C9079DA0088133B /* MyDimeScale.m */; };
1111
181ECE631D570CA1007803BE /* YYFPSLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 181ECE5F1D570CA1007803BE /* YYFPSLabel.m */; };
1212
181ECE641D570CA1007803BE /* YYWeakProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 181ECE601D570CA1007803BE /* YYWeakProxy.m */; };
13+
181F97F51E079462004A9AE6 /* RLTest5ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 181F97F41E079462004A9AE6 /* RLTest5ViewController.m */; };
1314
18296B6F1C76D55B00273C3E /* FOLTest1ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 18296B6E1C76D55B00273C3E /* FOLTest1ViewController.m */; };
1415
18296B721C76D66C00273C3E /* FOLTest2ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 18296B711C76D66C00273C3E /* FOLTest2ViewController.m */; };
1516
18296B751C76D67F00273C3E /* FOLTest3ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 18296B741C76D67F00273C3E /* FOLTest3ViewController.m */; };
@@ -103,6 +104,8 @@
103104
181ECE601D570CA1007803BE /* YYWeakProxy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYWeakProxy.m; sourceTree = "<group>"; };
104105
181ECE611D570CA1007803BE /* YYWeakProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYWeakProxy.h; sourceTree = "<group>"; };
105106
181ECE621D570CA1007803BE /* YYFPSLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYFPSLabel.h; sourceTree = "<group>"; };
107+
181F97F41E079462004A9AE6 /* RLTest5ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RLTest5ViewController.m; sourceTree = "<group>"; };
108+
181F97F61E079473004A9AE6 /* RLTest5ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RLTest5ViewController.h; sourceTree = "<group>"; };
106109
18296B6D1C76D55B00273C3E /* FOLTest1ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FOLTest1ViewController.h; sourceTree = "<group>"; };
107110
18296B6E1C76D55B00273C3E /* FOLTest1ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FOLTest1ViewController.m; sourceTree = "<group>"; };
108111
18296B701C76D66C00273C3E /* FOLTest2ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FOLTest2ViewController.h; sourceTree = "<group>"; };
@@ -469,6 +472,8 @@
469472
18D684291C4F421400A48BB4 /* RLTest3ViewController.m */,
470473
18A9A4D51D6304AD004974CE /* RLTest4ViewController.h */,
471474
18A9A4D31D63049F004974CE /* RLTest4ViewController.m */,
475+
181F97F61E079473004A9AE6 /* RLTest5ViewController.h */,
476+
181F97F41E079462004A9AE6 /* RLTest5ViewController.m */,
472477
);
473478
name = RelativeLayoutDemo;
474479
sourceTree = "<group>";
@@ -753,6 +758,7 @@
753758
1890A22F1C6DD71600373B8B /* FLLTest2ViewController.m in Sources */,
754759
46D45B161C525FC400A8362C /* MyLayoutSizeClass.m in Sources */,
755760
18BCC51A1D2D4885005081FF /* FLLTest4ViewController.m in Sources */,
761+
181F97F51E079462004A9AE6 /* RLTest5ViewController.m in Sources */,
756762
18D6843B1C4F421400A48BB4 /* MyFlowLayout.m in Sources */,
757763
18296B751C76D67F00273C3E /* FOLTest3ViewController.m in Sources */,
758764
18D684461C4F421400A48BB4 /* LLTest2ViewController.m in Sources */,

MyLayout/AllTest2TableViewCell.m

+5-4
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ -(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSStri
3232
* 您可以尝试用不同的布局来实现相同的功能。
3333
*/
3434
[self createLinearRootLayout];
35-
// [self createRelativeRootLayout];
36-
// [self createFloatRootLayout];
35+
//[self createRelativeRootLayout];
36+
// [self createFloatRootLayout];
3737
}
3838

3939
return self;
@@ -189,9 +189,10 @@ -(void)createRelativeRootLayout
189189
_nameLabel = [UILabel new];
190190
_nameLabel.font = [CFTool font:17];
191191
_nameLabel.textColor = [CFTool color:3];
192-
//相对布局在后续的版本中会增加对边界的限制方法来实现更加灵活的尺寸限制,这里暂时先设置为140经过测试效果最好。
193-
_nameLabel.widthDime.equalTo(_nameLabel.widthDime).uBound(rootLayout.widthDime, -1 * MYDIMESCALEW(140), 1); //视图的最大宽度和父视图宽度-140。
192+
_nameLabel.widthDime.equalTo(_nameLabel.widthDime);
194193
_nameLabel.leftPos.equalTo(_headImageView.rightPos);
194+
//1.3.0版本最新支持。设置_nameLabel的右边距最大是_priceLabel的左边距,再偏移两个小图标和间距的距离。这样当_nameLabel的尺寸超过这个最大的右边距时就会自动的缩小视图的宽度。
195+
_nameLabel.rightPos.uBound(_priceLabel.leftPos, (5 + 14 + 5 + 14));
195196
[rootLayout addSubview:_nameLabel];
196197

197198
UIImageView *editImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"edit"]];

MyLayout/Info.plist

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>APPL</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>1.2.9</string>
18+
<string>1.3.0</string>
1919
<key>CFBundleSignature</key>
2020
<string>????</string>
2121
<key>CFBundleVersion</key>

MyLayout/LLTest1ViewController.m

+9
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,15 @@ @implementation LLTest1ViewController
1919

2020
-(void)loadView
2121
{
22+
/*
23+
很多同学都反馈问我:为什么要在loadView方法中进行布局而不在viewDidLoad中进行布局? 以及在什么时候需要调用[super loadView];什么时候不需要?现在统一回复如下:
24+
25+
1.所有视图控制中的根视图view(self.view)都是在loadView中完成建立的,也就是说如果你的VC关联了XIB或者SB,那么其实会在VC的loadView方法里面加载XIB或者SB中的所有视图以及子视图,如果您的VC没有关联XIB或者SB那么loadView方法中将建立一个默认的根视图。而系统提供的viewDidLoad方法则是表示VC里面关联的视图已经建立好了,您可以有机会做其他一些初始化的东西。因此如果你想完全自定义VC里面的根视图和子视图的话那么建议您应该重载loadView方法而不是在viewDidLoad里面进行自定义视图的加载和处理。
26+
2.因为MyLayout是一套基于代码的界面布局库,因此建议您从VC的根视图就使用布局视图,所以我这边的很多DEMO都是直接在loadView里面进行布局,并且把一个布局视图作为根视图赋值给self.view。因此如果您直接想把布局视图作为根视图或者想自定义根视图的实现那么您就可以不必要再loadView里面调用[super loadView]方法;而如果您只是想把布局视图作为默认根视图的一个子视图的话那么您就必须要调用[super loadView]方法,然后再通过[self.view addSubview:XXXX]来将布局视图加入到根视图里面,如果您只是想把布局视图作为根视图的一个子视图的话,那么您也完全可以不用重载loadView方法,而是直接在viewDidLoad里面添加布局视图也是一样的。
27+
3.因为很多DEMO里面都是在loadView里面进行代码布局的,这个是为了方便处理,实际中布局视图是可以用在任何一个地方的,也可以在任何一个地方被建立,因此布局视图就是UIView的一个子视图,因此所有可以使用视图的地方都可以用布局视图。
28+
29+
*/
30+
2231

2332
/*
2433
一个视图可以通过对frame的设置来完成其在父视图中的布局。这种方法的缺点是要明确的指出视图所在的位置origin和视图所在的尺寸size,而且在代码中会出现大量的常数,以及需要进行大量的计算。MyLayout的出现就是为了解决布局时的大量常数的使用,以及大量的计算,以及自动适配的问题。需要明确的是用MyLayout进行布局时并不是不要指定视图的位置和尺寸,而是可以通过一些特定的上下文来省略或者隐式的指定视图的位置和尺寸。因此不管何种布局方式,视图布局时都必须要指定视图的位置和尺寸。

MyLayout/Lib/MyFrameLayout.m

+23-22
Original file line numberDiff line numberDiff line change
@@ -51,32 +51,34 @@ -(void)calcSubView:(UIView*)sbv pRect:(CGRect*)pRect inSize:(CGSize)selfSize
5151
MyMarginGravity vert = gravity & MyMarginGravity_Horz_Mask;
5252
MyMarginGravity horz = gravity & MyMarginGravity_Vert_Mask;
5353

54+
MyLayoutSize *sbvWidthDime = sbv.widthDime;
55+
MyLayoutSize *sbvHeightDime = sbv.heightDime;
5456

5557
//优先用设定的宽度尺寸。
56-
if (sbv.widthDime.dimeNumVal != nil)
57-
pRect->size.width = sbv.widthDime.measure;
58+
if (sbvWidthDime.dimeNumVal != nil)
59+
pRect->size.width = sbvWidthDime.measure;
5860

59-
if (sbv.heightDime.dimeNumVal != nil)
60-
pRect->size.height = sbv.heightDime.measure;
61+
if (sbvHeightDime.dimeNumVal != nil)
62+
pRect->size.height = sbvHeightDime.measure;
6163

62-
if (sbv.widthDime.dimeRelaVal != nil && sbv.widthDime.dimeRelaVal.view != sbv)
64+
if (sbvWidthDime.dimeRelaVal != nil && sbvWidthDime.dimeRelaVal.view != sbv)
6365
{
64-
if (sbv.widthDime.dimeRelaVal.view == self)
65-
pRect->size.width = (selfSize.width - self.leftPadding - self.rightPadding) * sbv.widthDime.mutilVal + sbv.widthDime.addVal;
66+
if (sbvWidthDime.dimeRelaVal.view == self)
67+
pRect->size.width = [sbvWidthDime measureWith:(selfSize.width - self.leftPadding - self.rightPadding)];
6668
else
67-
pRect->size.width = sbv.widthDime.dimeRelaVal.view.estimatedRect.size.width * sbv.widthDime.mutilVal + sbv.widthDime.addVal;
69+
pRect->size.width = [sbvWidthDime measureWith:sbvWidthDime.dimeRelaVal.view.estimatedRect.size.width];
6870
}
6971

70-
if (sbv.heightDime.dimeRelaVal != nil && sbv.heightDime.dimeRelaVal.view != sbv)
72+
if (sbvHeightDime.dimeRelaVal != nil && sbvHeightDime.dimeRelaVal.view != sbv)
7173
{
72-
if (sbv.heightDime.dimeRelaVal.view == self)
73-
pRect->size.height = (selfSize.height - self.topPadding - self.bottomPadding) * sbv.heightDime.mutilVal + sbv.heightDime.addVal;
74+
if (sbvHeightDime.dimeRelaVal.view == self)
75+
pRect->size.height = [sbvHeightDime measureWith:(selfSize.height - self.topPadding - self.bottomPadding)];
7476
else
75-
pRect->size.height = sbv.heightDime.dimeRelaVal.view.estimatedRect.size.height * sbv.heightDime.mutilVal + sbv.heightDime.addVal;
77+
pRect->size.height = [sbvHeightDime measureWith:sbvHeightDime.dimeRelaVal.view.estimatedRect.size.height];
7678

7779
}
7880

79-
pRect->size.width = [self validMeasure:sbv.widthDime sbv:sbv calcSize:pRect->size.width sbvSize:pRect->size selfLayoutSize:selfSize];
81+
pRect->size.width = [self validMeasure:sbvWidthDime sbv:sbv calcSize:pRect->size.width sbvSize:pRect->size selfLayoutSize:selfSize];
8082

8183

8284
//特殊处理如果设置了左右边距则确定了视图的宽度
@@ -93,33 +95,33 @@ -(void)calcSubView:(UIView*)sbv pRect:(CGRect*)pRect inSize:(CGSize)selfSize
9395

9496
}
9597

96-
pRect->size.height = [self validMeasure:sbv.heightDime sbv:sbv calcSize:pRect->size.height sbvSize:pRect->size selfLayoutSize:selfSize];
98+
pRect->size.height = [self validMeasure:sbvHeightDime sbv:sbv calcSize:pRect->size.height sbvSize:pRect->size selfLayoutSize:selfSize];
9799

98100
if (sbv.topPos.posVal != nil && sbv.bottomPos.posVal != nil)
99101
vert = MyMarginGravity_Vert_Fill;
100102

101103
[self vertGravity:vert selfSize:selfSize sbv:sbv rect:pRect];
102104

103105

104-
if (sbv.widthDime.dimeRelaVal != nil && sbv.widthDime.dimeRelaVal.view == sbv && sbv.widthDime.dimeRelaVal.dime == MyMarginGravity_Vert_Fill)
106+
if (sbvWidthDime.dimeRelaVal != nil && sbvWidthDime.dimeRelaVal.view == sbv && sbvWidthDime.dimeRelaVal.dime == MyMarginGravity_Vert_Fill)
105107
{
106-
107-
pRect->size.width = [self validMeasure:sbv.widthDime sbv:sbv calcSize:pRect->size.height * sbv.widthDime.mutilVal + sbv.widthDime.addVal sbvSize:pRect->size selfLayoutSize:selfSize];
108+
pRect->size.width = [sbvWidthDime measureWith:pRect->size.height];
109+
pRect->size.width = [self validMeasure:sbvWidthDime sbv:sbv calcSize:pRect->size.width sbvSize:pRect->size selfLayoutSize:selfSize];
108110

109111
[self horzGravity:horz selfSize:selfSize sbv:sbv rect:pRect];
110112

111113
}
112114

113-
if (sbv.heightDime.dimeRelaVal != nil && sbv.heightDime.dimeRelaVal.view == sbv && sbv.heightDime.dimeRelaVal.dime == MyMarginGravity_Horz_Fill)
115+
if (sbvHeightDime.dimeRelaVal != nil && sbvHeightDime.dimeRelaVal.view == sbv && sbvHeightDime.dimeRelaVal.dime == MyMarginGravity_Horz_Fill)
114116
{
115-
pRect->size.height = pRect->size.width * sbv.heightDime.mutilVal + sbv.heightDime.addVal;
117+
pRect->size.height = [sbvHeightDime measureWith:pRect->size.width];
116118

117119
if (sbv.isFlexedHeight)
118120
{
119121
pRect->size.height = [self heightFromFlexedHeightView:sbv inWidth:pRect->size.width];
120122
}
121123

122-
pRect->size.height = [self validMeasure:sbv.heightDime sbv:sbv calcSize:pRect->size.height sbvSize:pRect->size selfLayoutSize:selfSize];
124+
pRect->size.height = [self validMeasure:sbvHeightDime sbv:sbv calcSize:pRect->size.height sbvSize:pRect->size selfLayoutSize:selfSize];
123125

124126
[self vertGravity:vert selfSize:selfSize sbv:sbv rect:pRect];
125127

@@ -133,7 +135,6 @@ -(void)calcSubView:(UIView*)sbv pRect:(CGRect*)pRect inSize:(CGSize)selfSize
133135

134136
-(CGSize)calcLayoutRect:(CGSize)size isEstimate:(BOOL)isEstimate pHasSubLayout:(BOOL*)pHasSubLayout sizeClass:(MySizeClass)sizeClass
135137
{
136-
137138
CGSize selfSize = [super calcLayoutRect:size isEstimate:isEstimate pHasSubLayout:pHasSubLayout sizeClass:sizeClass];
138139
CGFloat maxWidth = self.leftPadding;
139140
CGFloat maxHeight = self.topPadding;
@@ -222,7 +223,7 @@ -(CGSize)calcLayoutRect:(CGSize)size isEstimate:(BOOL)isEstimate pHasSubLayout:(
222223

223224
}
224225
}
225-
226+
226227
return selfSize;
227228

228229
}

MyLayout/Lib/MyLayout.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
*/
3838

3939

40-
//当前版本为1.2.9 请到: https://github.com/youngsoft/MyLinearLayout/blob/master/CHANGELOG.md 中查看变更和历史版本。
40+
//Current version is 1.3.0, please open: https://github.com/youngsoft/MyLinearLayout/blob/master/CHANGELOG.md to show the changes.
4141

4242

4343
#ifndef MyLayout_MyLayout_h

MyLayout/Lib/MyLayoutPos.h

+10
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,9 @@
6969
-(MyLayoutPos* (^)(id val))myEqualTo;
7070
-(MyLayoutPos* (^)(CGFloat val))myOffset;
7171
-(MyLayoutPos* (^)(CGFloat val))myMin;
72+
-(MyLayoutPos* (^)(id posVal, CGFloat offset))myLBound;
7273
-(MyLayoutPos* (^)(CGFloat val))myMax;
74+
-(MyLayoutPos* (^)(id posVal, CGFloat offset))myUBound;
7375
-(void)myClear;
7476

7577
#else
@@ -93,13 +95,21 @@
9395

9496
/**
9597
*设置布局位置的最小值。这个方法一般和相对位置值配合使用,不设置默认是-CGFLOAT_MAX
98+
*lBound方法是max方法的扩展方法,posVal除了能设置NSNumber类型外,还可以设置MyLayoutPos对象。目前如果设置为MyLayoutPos对象只有在相对布局里面的子视图才有意义,
99+
*表示视图的最小位置不能小于指定的位置,否则将会缩小视图的尺寸。
96100
*/
97101
-(MyLayoutPos* (^)(CGFloat val))min;
102+
-(MyLayoutPos* (^)(id posVal, CGFloat offset))lBound;
103+
98104

99105
/**
100106
*设置布局位置的最大值。这个方法一般和相对位置值配合使用,不设置默认是CGFLOAT_MAX
107+
*uBound方法是max方法的扩展方法,posVal除了能设置NSNumber类型外,还可以设置MyLayoutPos对象。目前如果设置为MyLayoutPos对象只有在相对布局里面的子视图才有意义,
108+
*表示视图的最大位置不能大于指定的位置,否则将会缩小视图的尺寸。
109+
*如果相对布局中的某个子视图同时指定了MyLayoutPos类型值的最小和最大值,那么子视图的位置将会居中于这个指定的区间,并且一旦尺寸超出指定的区间尺寸则会缩小视图的尺寸。
101110
*/
102111
-(MyLayoutPos* (^)(CGFloat val))max;
112+
-(MyLayoutPos* (^)(id posVal, CGFloat offset))uBound;
103113

104114

105115
/**

MyLayout/Lib/MyLayoutPos.m

+35
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,24 @@ -(void)__clear
183183
};
184184
}
185185

186+
-(MyLayoutPos* (^)(id posVal, CGFloat offset))myLBound
187+
{
188+
return ^id(id posVal, CGFloat offset){
189+
190+
return [self __lBound:posVal offsetVal:offset];
191+
};
192+
}
193+
194+
-(MyLayoutPos* (^)(id posVal, CGFloat offset))myUBound
195+
{
196+
return ^id(id posVal, CGFloat offset){
197+
198+
return [self __uBound:posVal offsetVal:offset];
199+
};
200+
}
201+
202+
203+
186204

187205

188206
-(void)myClear
@@ -217,6 +235,14 @@ -(void)myClear
217235
};
218236
}
219237

238+
-(MyLayoutPos* (^)(id posVal, CGFloat offset))lBound
239+
{
240+
return ^id(id posVal, CGFloat offset){
241+
242+
return [self __lBound:posVal offsetVal:offset];
243+
};
244+
}
245+
220246

221247
-(MyLayoutPos* (^)(CGFloat val))max
222248
{
@@ -226,6 +252,15 @@ -(void)myClear
226252
};
227253
}
228254

255+
-(MyLayoutPos* (^)(id posVal, CGFloat offset))uBound
256+
{
257+
return ^id(id posVal, CGFloat offset){
258+
259+
return [self __uBound:posVal offsetVal:offset];
260+
};
261+
}
262+
263+
229264

230265

231266
-(void)clear

MyLayout/Lib/MyLinearLayout.m

+5-4
Original file line numberDiff line numberDiff line change
@@ -1446,6 +1446,7 @@ -(void)averageSubviewsForHorz:(BOOL)centered withMargin:(CGFloat)margin
14461446

14471447
for (UIView *sbv in sbs)
14481448
{
1449+
[sbv.rightPos __equalTo:@0];
14491450
[sbv.leftPos __equalTo:@(scale2)];
14501451
sbv.weight = scale;
14511452

@@ -1477,8 +1478,8 @@ -(void)averageMarginForVert:(BOOL)centered
14771478
if (sbv == sbs.firstObject && !centered)
14781479
[sbv.topPos __equalTo:@0];
14791480

1480-
if (sbv == sbs.lastObject && centered)
1481-
[sbv.bottomPos __equalTo:@(scale)];
1481+
if (sbv == sbs.lastObject)
1482+
[sbv.bottomPos __equalTo: centered? @(scale) : @0];
14821483
}
14831484

14841485

@@ -1499,8 +1500,8 @@ -(void)averageMarginForHorz:(BOOL)centered
14991500
if (sbv == sbs.firstObject && !centered)
15001501
[sbv.leftPos __equalTo:@0];
15011502

1502-
if (sbv == sbs.lastObject && centered)
1503-
[sbv.rightPos __equalTo:@(scale)];
1503+
if (sbv == sbs.lastObject)
1504+
[sbv.rightPos __equalTo:centered? @(scale) : @0];
15041505
}
15051506
}
15061507

MyLayout/Lib/MyMaker.h

-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@
5757

5858
//流式布局独有
5959
-(MyMaker*)arrangedCount;
60-
-(MyMaker*)averageArrange;
6160
-(MyMaker*)autoArrange;
6261
-(MyMaker*)arrangedGravity;
6362
-(MyMaker*)subviewVertMargin;

MyLayout/Lib/MyMaker.m

-5
Original file line numberDiff line numberDiff line change
@@ -228,11 +228,6 @@ -(MyMaker*)arrangedCount
228228
return [self addMethod:@"arrangedCount"];
229229
}
230230

231-
-(MyMaker*)averageArrange
232-
{
233-
return [self addMethod:@"averageArrange"];
234-
}
235-
236231
-(MyMaker*)autoArrange
237232
{
238233
return [self addMethod:@"autoArrange"];

0 commit comments

Comments
 (0)