Skip to content

Commit

Permalink
功能升级,BUG修复
Browse files Browse the repository at this point in the history
  • Loading branch information
youngsoft committed Nov 30, 2019
1 parent 42d7866 commit cd73266
Show file tree
Hide file tree
Showing 11 changed files with 230 additions and 445 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
**MyLayout**的所有版本的变更日志都将会在这里记录.

---
## [V1.9.0](https://github.com/youngsoft/MyLinearLayout/releases/tag/1.9.0)(2019/10/21)
## [V1.9.0](https://github.com/youngsoft/MyLinearLayout/releases/tag/1.9.0)(2019/11/30)

### Added

Expand Down
14 changes: 0 additions & 14 deletions MyLayout.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -171,10 +171,6 @@
20DF42422318F4EA0078CAA0 /* MyFlexLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 20DF42402318F4EA0078CAA0 /* MyFlexLayout.m */; };
20F0DFFD2111749A00CFCE8C /* AllTest11ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 20F0DFFC2111749A00CFCE8C /* AllTest11ViewController.m */; };
20F0E00021120A8D00CFCE8C /* FLLTest8ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 20F0DFFF21120A8D00CFCE8C /* FLLTest8ViewController.m */; };
20F4A803237EF0E000D464E7 /* MyLayoutUI.h in Headers */ = {isa = PBXBuildFile; fileRef = 20F4A801237EF0E000D464E7 /* MyLayoutUI.h */; };
20F4A804237EF0E000D464E7 /* MyLayoutUI.m in Sources */ = {isa = PBXBuildFile; fileRef = 20F4A802237EF0E000D464E7 /* MyLayoutUI.m */; };
20F4A805237EF46200D464E7 /* MyLayoutUI.m in Sources */ = {isa = PBXBuildFile; fileRef = 20F4A802237EF0E000D464E7 /* MyLayoutUI.m */; };
20F4A807237FC40900D464E7 /* MyLayoutUIInner.h in Headers */ = {isa = PBXBuildFile; fileRef = 20F4A806237FC40900D464E7 /* MyLayoutUIInner.h */; };
20F783561F60399700BE5B31 /* GLTest3ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 20F783551F60399700BE5B31 /* GLTest3ViewController.m */; };
4411977B1F6AE78E00C22557 /* GridLayoutDemo5.json in Resources */ = {isa = PBXBuildFile; fileRef = 4411977A1F6AE78E00C22557 /* GridLayoutDemo5.json */; };
444B71911F6A3E3F00331872 /* GLTest5ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 444B71901F6A3E3F00331872 /* GLTest5ViewController.m */; };
Expand Down Expand Up @@ -430,9 +426,6 @@
20F0DFFC2111749A00CFCE8C /* AllTest11ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AllTest11ViewController.m; sourceTree = "<group>"; };
20F0DFFE21120A8D00CFCE8C /* FLLTest8ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FLLTest8ViewController.h; sourceTree = "<group>"; };
20F0DFFF21120A8D00CFCE8C /* FLLTest8ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FLLTest8ViewController.m; sourceTree = "<group>"; };
20F4A801237EF0E000D464E7 /* MyLayoutUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MyLayoutUI.h; sourceTree = "<group>"; };
20F4A802237EF0E000D464E7 /* MyLayoutUI.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MyLayoutUI.m; sourceTree = "<group>"; };
20F4A806237FC40900D464E7 /* MyLayoutUIInner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyLayoutUIInner.h; sourceTree = "<group>"; };
20F783541F60398C00BE5B31 /* GLTest3ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GLTest3ViewController.h; sourceTree = "<group>"; };
20F783551F60399700BE5B31 /* GLTest3ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GLTest3ViewController.m; sourceTree = "<group>"; };
4411977A1F6AE78E00C22557 /* GridLayoutDemo5.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = GridLayoutDemo5.json; sourceTree = "<group>"; };
Expand Down Expand Up @@ -822,9 +815,6 @@
182225B41E77E5930081AA4B /* MyFlowLayout.m */,
20DF423F2318F4EA0078CAA0 /* MyFlexLayout.h */,
20DF42402318F4EA0078CAA0 /* MyFlexLayout.m */,
20F4A801237EF0E000D464E7 /* MyLayoutUI.h */,
20F4A802237EF0E000D464E7 /* MyLayoutUI.m */,
20F4A806237FC40900D464E7 /* MyLayoutUIInner.h */,
182225AC1E77E5930081AA4B /* MyLinearLayout.h */,
182225B21E77E5930081AA4B /* MyLinearLayout.m */,
182225AD1E77E5930081AA4B /* MyFloatLayout.h */,
Expand Down Expand Up @@ -939,7 +929,6 @@
18C15AF21EDF13F900AADEAC /* MyPathLayout.h in Headers */,
205643161F55A03000E8BDDE /* MyLayoutMath.h in Headers */,
18C15AF31EDF13FF00AADEAC /* MyFrameLayout.h in Headers */,
20F4A803237EF0E000D464E7 /* MyLayoutUI.h in Headers */,
18C15AF41EDF140400AADEAC /* MyBaseLayout.h in Headers */,
18C15AF51EDF140D00AADEAC /* MyLayoutPos.h in Headers */,
18C15AF61EDF141000AADEAC /* MyLayoutSize.h in Headers */,
Expand All @@ -953,7 +942,6 @@
18C15AFA1EDF142300AADEAC /* MyLayoutDef.h in Headers */,
205E0C6020B907CC001A8B99 /* MyLayoutPosInner.h in Headers */,
205E0C6120B907D1001A8B99 /* MyLayoutSizeInner.h in Headers */,
20F4A807237FC40900D464E7 /* MyLayoutUIInner.h in Headers */,
205E0C6220B907DB001A8B99 /* MyLayoutInner.h in Headers */,
205E0C6320B907EC001A8B99 /* MyLayoutDelegate.h in Headers */,
);
Expand Down Expand Up @@ -1163,7 +1151,6 @@
20DF42422318F4EA0078CAA0 /* MyFlexLayout.m in Sources */,
182DB6441EF7876200E2D65D /* MyGridLayout.m in Sources */,
18C15B001EDF144B00AADEAC /* MyPathLayout.m in Sources */,
20F4A804237EF0E000D464E7 /* MyLayoutUI.m in Sources */,
18C15B011EDF144B00AADEAC /* MyFrameLayout.m in Sources */,
18C15B021EDF144B00AADEAC /* MyBaseLayout.m in Sources */,
18C15B031EDF144B00AADEAC /* MyLayoutPos.m in Sources */,
Expand Down Expand Up @@ -1195,7 +1182,6 @@
18D3C9731EDF082800D3DE43 /* AllTest2TableViewCell.m in Sources */,
18D3C95F1EDF07F800D3DE43 /* FOLTest6ViewController.m in Sources */,
182225D51E77E5930081AA4B /* MyLayoutSize.m in Sources */,
20F4A805237EF46200D464E7 /* MyLayoutUI.m in Sources */,
6740E20120A52DC100AFBC5A /* AllTest10Cell.m in Sources */,
18D3C93A1EDF07C000D3DE43 /* FLLTest2ViewController.m in Sources */,
467E63CF228CDA660065D080 /* AllTest1TableViewCellForAutoLayout.m in Sources */,
Expand Down
10 changes: 8 additions & 2 deletions MyLayout/Lib/MyBaseLayout.h
Original file line number Diff line number Diff line change
Expand Up @@ -336,12 +336,18 @@
*/

/**
*视图的宽度布局尺寸,是widthSize.equalTo方法的简化版本。此属性只用于赋值不用于读取!
*视图的宽度布局尺寸,是widthSize.equalTo方法的简化版本。此属性只用于赋值不用于读取!除了设置常规的数字外您还可以设置一些特殊的值:
MyLayoutSize.wrap 表示宽度自适应
MyLayoutSize.fill 表明宽度填充父视图剩余宽度
MyLayoutSize.empty 表明清除宽度约束。
*/
@property(nonatomic,assign) IBInspectable CGFloat myWidth;

/**
*视图的高度布局尺寸,是heightSize.equalTo方法的简化版本。此属性只用于赋值不用于读取!
*视图的高度布局尺寸,是heightSize.equalTo方法的简化版本。此属性只用于赋值不用于读取!除了设置常规的数字外您还可以设置一些特殊的值:
MyLayoutSize.wrap 表示高度自适应
MyLayoutSize.fill 表明高度填充父视图剩余高度
MyLayoutSize.empty 表明清除高度约束。
*/
@property(nonatomic,assign) IBInspectable CGFloat myHeight;

Expand Down
80 changes: 78 additions & 2 deletions MyLayout/Lib/MyFlexLayout.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
//

#import "MyFlowLayout.h"
#import "MyLayoutUI.h"

/**定义flex的方向类型*/
typedef enum : int {
Expand Down Expand Up @@ -89,9 +88,86 @@ extern const int MyFlex_Auto;



@protocol MyFlexItem<MyUIViewUI>
@protocol MyFlexItem

@property(nonatomic, strong, readonly) id<MyFlexItemAttrs> attrs;
@property(nonatomic, weak, readonly) __kindof UIView *view;


/**
视图的宽度设置,如果宽度设置为大于0小于1则表明是相对于父视图宽度的比重值,如果是MyLayoutSize.wrap则表明宽度自适应,如果是MyLayoutSize.fill则表明宽度和父视图相等,如果是MyLayoutSize.empty则表明不设置宽度值。 其他的值就是一个固定宽度值。
*/
-(id<MyFlexItem> (^)(CGFloat))width;


/**
视图的宽度设置,percent表明占用父视图宽度的百分比值,inc表明在百分比值的基础上的增量值。
*/
-(id<MyFlexItem> (^)(CGFloat percent, CGFloat inc))width_percent;


/**
最小宽度限制设置
*/
-(id<MyFlexItem> (^)(CGFloat))min_width;

/**
最大宽度限制设置
*/
-(id<MyFlexItem> (^)(CGFloat))max_width;
/**
视图的高度设置,如果高度设置为大于0小于1则表明是相对于父视图高度的比重值,如果是MyLayoutSize.wrap则表明高度自适应,如果是MyLayoutSize.fill则表明高度和父视图相等,如果是MyLayoutSize.empty则表明不设置高度值,其他的值就是一个固定高度值。
*/
-(id<MyFlexItem> (^)(CGFloat))height;

/**
视图的高度设置,percent表明占用父视图高度的百分比值,inc表明在百分比值的基础上的增量值。
*/
-(id<MyFlexItem> (^)(CGFloat percent, CGFloat inc))height_percent;


/**
最小高度限制设置
*/
-(id<MyFlexItem> (^)(CGFloat))min_height;

/**
最大高度限制设置
*/
-(id<MyFlexItem> (^)(CGFloat))max_height;

//视图的外间距设置。
/**
视图的顶部外间距设置
*/
-(id<MyFlexItem> (^)(CGFloat))margin_top;
/**
视图的底部外间距设置
*/
-(id<MyFlexItem> (^)(CGFloat))margin_bottom;
/**
视图的左边外间距设置
*/
-(id<MyFlexItem> (^)(CGFloat))margin_left;
/**
视图的右边外间距设置
*/
-(id<MyFlexItem> (^)(CGFloat))margin_right;
/**
视图的四周外间距设置
*/
-(id<MyFlexItem> (^)(CGFloat))margin;
/**
视图的可视设置
*/
-(id<MyFlexItem> (^)(MyVisibility))visibility;


//添加到父视图中
-(__kindof UIView* (^)(UIView*))addTo;

//添加子视图
-(id<MyFlexItem> (^)(UIView*))add;

/**
条目在弹盒中的排列顺序,值越大越往后排。
Expand Down
145 changes: 138 additions & 7 deletions MyLayout/Lib/MyFlexLayout.m
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
//

#import "MyFlexLayout.h"
#import "MyLayoutUIInner.h"
#import "MyLayoutInner.h"
#import <objc/runtime.h>

Expand Down Expand Up @@ -281,6 +280,144 @@ -(instancetype)initWithView:(UIView*)view attrs:(id<MyFlexItemAttrs>)attrs
return _attrs;
}

-(id<MyFlexItem> (^)(CGFloat))width
{
return ^id(CGFloat val) {
if (val > 0 && val < 1)
self.view.widthSize.equalTo(@(MyLayoutSize.fill)).multiply(val);
else
self.view.widthSize.equalTo(@(val));
return self;
};
}

-(id<MyFlexItem> (^)(CGFloat percent, CGFloat inc))width_percent
{
return ^id(CGFloat percent, CGFloat inc) {
self.view.widthSize.equalTo(@(MyLayoutSize.fill)).multiply(percent).add(inc);
return self;
};
}

-(id<MyFlexItem> (^)(CGFloat))min_width
{
return ^id(CGFloat val) {
self.view.widthSize.min(val);
return self;
};
}

-(id<MyFlexItem> (^)(CGFloat))max_width
{
return ^id(CGFloat val) {
self.view.widthSize.max(val);
return self;
};
}

-(id<MyFlexItem> (^)(CGFloat))height
{
return ^id(CGFloat val) {
if (val > 0 && val < 1)
self.view.heightSize.equalTo(@(MyLayoutSize.fill)).multiply(val);
else
self.view.heightSize.equalTo(@(val));
return self;
};
}

-(id<MyFlexItem> (^)(CGFloat percent, CGFloat inc))height_percent
{
return ^id(CGFloat percent, CGFloat inc) {
self.view.heightSize.equalTo(@(MyLayoutSize.fill)).multiply(percent).add(inc);
return self;
};
}

-(id<MyFlexItem> (^)(CGFloat))min_height
{
return ^id(CGFloat val) {
self.view.heightSize.min(val);
return self;
};
}

-(id<MyFlexItem> (^)(CGFloat))max_height
{
return ^id(CGFloat val) {
self.view.heightSize.max(val);
return self;
};
}

-(id<MyFlexItem> (^)(CGFloat))margin_top
{
return ^id(CGFloat val) {
self.view.myTop = val;
return self;
};
}

-(id<MyFlexItem> (^)(CGFloat))margin_bottom
{
return ^id(CGFloat val) {
self.view.myBottom = val;
return self;
};
}

-(id<MyFlexItem> (^)(CGFloat))margin_left
{
return ^id(CGFloat val) {
self.view.myLeft = val;
return self;
};
}

-(id<MyFlexItem> (^)(CGFloat))margin_right
{
return ^id(CGFloat val) {
self.view.myRight = val;
return self;
};
}

-(id<MyFlexItem> (^)(CGFloat))margin
{
return ^id(CGFloat val) {
self.view.myLeft = val;
self.view.myRight = val;
self.view.myTop = val;
self.view.myBottom = val;
return self;
};
}

-(id<MyFlexItem> (^)(MyVisibility))visibility
{
return ^id(MyVisibility val) {
self.view.visibility = val;
return self;
};
}

-(__kindof UIView* (^)(UIView*))addTo
{
return ^(UIView *val) {
[val addSubview:self.view];
return self.view;
};
}

-(id<MyFlexItem> (^)(UIView*))add
{
return ^(UIView *val) {
[self.view addSubview:val];
return self;
};
}


-(id<MyFlexItem> (^)(NSInteger))order
{
return ^id(NSInteger val) {
Expand Down Expand Up @@ -321,12 +458,6 @@ -(instancetype)initWithView:(UIView*)view attrs:(id<MyFlexItemAttrs>)attrs
};
}

//其他请求跳转到myUI中去。
-(id)forwardingTargetForSelector:(SEL)aSelector
{
return self.view.myUI;
}

@end


Expand Down
2 changes: 1 addition & 1 deletion MyLayout/Lib/MyLayout.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
*/


//Current version is 1.9.0beta, please open: https://github.com/youngsoft/MyLinearLayout/blob/master/CHANGELOG.md to show the changes.
//Current version is 1.9.0, please open: https://github.com/youngsoft/MyLinearLayout/blob/master/CHANGELOG.md to show the changes.


#ifndef MyLayout_MyLayout_h
Expand Down

0 comments on commit cd73266

Please sign in to comment.