Skip to content

Commit 53de436

Browse files
committed
重大升级!1.任意添加或者修改约束不冲突;2.性能提升%40以上
1 parent e15b11f commit 53de436

5 files changed

Lines changed: 157 additions & 341 deletions

File tree

‎SDAutoLayout 测试 Demo.xcodeproj/project.xcworkspace/xcshareddata/SDAutoLayout 测试 Demo.xccheckout‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77
<key>IDESourceControlProjectIdentifier</key>
88
<string>8BC84513-8209-450D-8B83-ED7D8EC37C2F</string>
99
<key>IDESourceControlProjectName</key>
10-
<string>SDAutoLayout 测试 Demo</string>
10+
<string>project</string>
1111
<key>IDESourceControlProjectOriginsDictionary</key>
1212
<dict>
1313
<key>40520CB4A9F8C381D7E5F0983C9C8C1C9AAB816E</key>
1414
<string>https://github.com/gsdios/SDAutoLayout.git</string>
1515
</dict>
1616
<key>IDESourceControlProjectPath</key>
17-
<string>SDAutoLayout 测试 Demo.xcodeproj</string>
17+
<string>SDAutoLayout 测试 Demo.xcodeproj/project.xcworkspace</string>
1818
<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
1919
<dict>
2020
<key>40520CB4A9F8C381D7E5F0983C9C8C1C9AAB816E</key>

‎SDAutoLayout 测试 Demo/DemoVC2.m‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ - (void)viewDidLoad
3737
self.view2.sd_layout.leftSpaceToView(self.view1, 30).topSpaceToView(self.view1, 30).widthRatioToView(self.view1, 0.5).heightRatioToView(self.view1, 0.5);
3838

3939
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.8 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
40-
self.view0.sd_layout.heightIs(200).topSpaceToView(self.view, 80);
40+
self.view0.sd_layout.bottomSpaceToView(self.view, 100);
41+
[self.view layoutSubviews];
4142
});
4243
}
4344

‎SDAutoLayout 测试 Demo/SDAutoLayout/UIView+SDAutoLayout.h‎

Lines changed: 46 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -6,56 +6,56 @@
66
//
77

88
/*
9-
*************************************************************************
10-
11-
--------- INTRODUCTION ---------
9+
*************************************************************************
10+
11+
--------- INTRODUCTION ---------
1212
1313
14-
********
15-
* *
16-
* v1 *
17-
********
18-
|
14+
********
15+
* *
16+
* v1 *
17+
********
18+
|
1919
20-
topSpaceToView
20+
topSpaceToView
2121
22-
|
22+
|
2323
******** ******** ********
2424
* * * * * *
2525
* v0 * —— leftSpaceToView —— * Demo * —— rightSpaceToView ——* v2 *
2626
******** ******** ********
27-
|
27+
|
2828
29-
bottomSpaceToView
29+
bottomSpaceToView
3030
31-
|
32-
********
33-
* *
34-
* v3 *
35-
********
31+
|
32+
********
33+
* *
34+
* v3 *
35+
********
3636
3737
HOW TO USE ?
3838
3939
40-
MODE 1. >>>>>>>>>>>>>>> You can use it in this way:
40+
MODE 1. >>>>>>>>>>>>>>> You can use it in this way:
4141
42-
Demo.sd_layout
43-
.topSpaceToView(v1, 100)
44-
.bottomSpaceToView(v3, 100)
45-
.leftSpaceToView(v0, 150)
46-
.rightSpaceToView(v2, 150);
42+
Demo.sd_layout
43+
.topSpaceToView(v1, 100)
44+
.bottomSpaceToView(v3, 100)
45+
.leftSpaceToView(v0, 150)
46+
.rightSpaceToView(v2, 150);
4747
4848
49-
50-
MODE 2. >>>>>>>>>>>>>>> You can also use it in this way that is more brevity:
5149
52-
Demo.sd_layout.topSpaceToView(v1, 100).bottomSpaceToView(v3, 100).leftSpaceToView(v0, 150).rightSpaceToView(v2, 150);
50+
MODE 2. >>>>>>>>>>>>>>> You can also use it in this way that is more brevity:
5351
52+
Demo.sd_layout.topSpaceToView(v1, 100).bottomSpaceToView(v3, 100).leftSpaceToView(v0, 150).rightSpaceToView(v2, 150);
5453
5554
56-
57-
*************************************************************************
58-
*/
55+
56+
57+
*************************************************************************
58+
*/
5959

6060

6161
/*
@@ -73,14 +73,6 @@ MODE 2. >>>>>>>>>>>>>>> You can also use it in this way that is more brevity:
7373
7474
*/
7575

76-
77-
78-
/*
79-
* 如果您需要布局错误LOG信息提示请打开此宏
80-
*/
81-
82-
//#define SDAutoLayoutIssueLog
83-
8476
#import <UIKit/UIKit.h>
8577

8678
@class SDAutoLayoutModel;
@@ -152,11 +144,27 @@ typedef void (^SpaceToSuperView)(UIEdgeInsets insets);
152144

153145
@property (nonatomic, copy, readonly) SpaceToSuperView spaceToSuperView;
154146

155-
@property (nonatomic, weak) UIView *referencedView;
156147
@property (nonatomic, weak) UIView *needsAutoResizeView;
157148

149+
@end
150+
151+
158152

159153

154+
155+
156+
157+
158+
159+
160+
161+
// ----------------- 以下为此库内部需要用到的类和方法(可以不用看)----------------
162+
163+
@interface SDAutoLayoutModelItem : NSObject
164+
165+
@property (nonatomic, strong) NSNumber *value;
166+
@property (nonatomic, weak) UIView *refView;
167+
160168
@end
161169

162170
@interface UIView (SDAutoLayout)
@@ -167,21 +175,11 @@ typedef void (^SpaceToSuperView)(UIEdgeInsets insets);
167175

168176
- (void)addAutoLayoutModel:(SDAutoLayoutModel *)model;
169177

170-
- (void)addLayoutModelWithAttributeHeightOrWidth:(SDAutoLayoutModel *)model;
171-
172178
@property (nonatomic, strong) NSNumber *fixedWith;
173179
@property (nonatomic, strong) NSNumber *fixedHeight;
174180

175181
@property (nonatomic, strong) NSNumber *autoHeightRatioValue;
176182

177-
#if defined DEBUG && defined SDAutoLayoutIssueLog // 调试状态下 约束问题提醒
178-
179-
- (void)addOwnAutoLayoutModel:(SDAutoLayoutModel *)model withKey:(NSString *)key;
180-
181-
- (void)checkAutoLayoutIntegrality;
182-
183-
#endif
184-
185183
@end
186184

187185

0 commit comments

Comments
 (0)