Skip to content

Commit 6d026ae

Browse files
HaoColdHaoCold
authored andcommitted
2.5.1:add some simple methods
1 parent 9976bba commit 6d026ae

8 files changed

Lines changed: 134 additions & 1 deletion

File tree

JHFrameLayout.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Pod::Spec.new do |s|
22
s.name = 'JHFrameLayout'
33
s.summary = 'A simple way for frame layout. It can autolayout in version 2.0.'
4-
s.version = '2.5.0'
4+
s.version = '2.5.1'
55
s.license = { :type => 'MIT'}
66
s.authors = { 'Haocold' => 'xjh093@126.com' }
77
s.homepage = 'https://github.com/xjh093/JHFrameLayout'

JHFrameLayout/JHFrameLayoutView.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ typedef JHLayout *(^JHLayoutOrigin)(CGPoint origin);
3838
typedef JHLayout *(^JHLayoutOriginEqualToView)(UIView *view);
3939
typedef JHLayout *(^JHLayoutCenter)(CGPoint center);
4040
typedef JHLayout *(^JHLayoutCenterEqualToView)(UIView *view);
41+
typedef JHLayout *(^JHLayoutEdge)(CGFloat padding);
4142

4243
typedef JHLayout *(^JHLayoutWidth)(CGFloat width);
4344
typedef JHLayout *(^JHLayoutHeight)(CGFloat height);
@@ -53,7 +54,9 @@ typedef JHLayout *(^JHLayoutRight)(CGFloat offsetX);
5354
typedef JHLayout *(^JHLayoutCenterX)(CGFloat offsetX);
5455
typedef JHLayout *(^JHLayoutCenterY)(CGFloat offsetY);
5556
typedef JHLayout *(^JHLayoutTopEqualToView)(UIView *view);
57+
typedef JHLayout *(^JHLayoutTopEqualToBottom)(CGFloat padding);
5658
typedef JHLayout *(^JHLayoutLeftEqualToView)(UIView *view);
59+
typedef JHLayout *(^JHLayoutLeftEqualToRight)(CGFloat padding);
5760
typedef JHLayout *(^JHLayoutBottomEqualToView)(UIView *view);
5861
typedef JHLayout *(^JHLayoutRightEqualToView)(UIView *view);
5962
typedef JHLayout *(^JHLayoutCenterXEqualToView)(UIView *view);
@@ -77,6 +80,9 @@ typedef JHLayout *(^JHLayoutMiddleOfView)(CGFloat offset, UIView *view, BOOL upd
7780
@property (nonatomic, copy, readonly) JHLayoutOrigin originIs;
7881
@property (nonatomic, copy, readonly) JHLayoutOriginEqualToView originIsEqualToView;
7982

83+
//edge
84+
@property (nonatomic, copy, readonly) JHLayoutEdge edgeIs;
85+
8086
// width
8187
@property (nonatomic, copy, readonly) JHLayoutWidth widthIs;
8288
@property (nonatomic, copy, readonly) JHLayoutWidthEqualToView widthIsEqualToView;
@@ -92,6 +98,7 @@ typedef JHLayout *(^JHLayoutMiddleOfView)(CGFloat offset, UIView *view, BOOL upd
9298
// top space in super view
9399
@property (nonatomic, copy, readonly) JHLayoutTop topIs;
94100
@property (nonatomic, copy, readonly) JHLayoutTopEqualToView topIsEqualToView;
101+
@property (nonatomic, copy, readonly) JHLayoutTopEqualToBottom topIsEqualToBottom;
95102
@property (nonatomic, copy, readonly) JHLayoutTopOfView topOffsetTopOfView;
96103
@property (nonatomic, copy, readonly) JHLayoutMiddleOfView topOffsetMiddleOfView;
97104
@property (nonatomic, copy, readonly) JHLayoutBottomOfView topOffsetBottomOfView;
@@ -100,6 +107,7 @@ typedef JHLayout *(^JHLayoutMiddleOfView)(CGFloat offset, UIView *view, BOOL upd
100107
// left space in super view
101108
@property (nonatomic, copy, readonly) JHLayoutLeft leftIs;
102109
@property (nonatomic, copy, readonly) JHLayoutLeftEqualToView leftIsEqualToView;
110+
@property (nonatomic, copy, readonly) JHLayoutLeftEqualToRight leftIsEqualToRight;
103111
@property (nonatomic, copy, readonly) JHLayoutLeftOfView leftOffsetLeftOfView;
104112
@property (nonatomic, copy, readonly) JHLayoutMiddleOfView leftOffsetMiddleOfView;
105113
@property (nonatomic, copy, readonly) JHLayoutRightOfView leftOffsetRightOfView;

JHFrameLayout/JHFrameLayoutView.m

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,20 @@ - (JHLayoutOriginEqualToView)originIsEqualToView{
136136
};
137137
}
138138

139+
#pragma mark - edge
140+
- (JHLayoutEdge)edgeIs{
141+
return ^(CGFloat padding){
142+
143+
__weak typeof(self) ws = self;
144+
JHLayoutBlock block = ^(){
145+
[ws.layoutView jh_edgeIs:padding];
146+
};
147+
[self.layoutArray addObject:block];
148+
149+
return self;
150+
};
151+
}
152+
139153
#pragma mark - width
140154
- (JHLayoutWidth)widthIs{
141155
return ^(CGFloat width){
@@ -276,6 +290,19 @@ - (JHLayoutTopEqualToView)topIsEqualToView{
276290
};
277291
}
278292

293+
- (JHLayoutTopEqualToBottom)topIsEqualToBottom{
294+
return ^(CGFloat padding){
295+
296+
__weak typeof(self) ws = self;
297+
JHLayoutBlock block = ^(){
298+
[ws.layoutView jh_topIsEqualToBottom:padding];
299+
};
300+
[self.layoutArray addObject:block];
301+
302+
return self;
303+
};
304+
}
305+
279306
- (JHLayoutTopOfView)topOffsetTopOfView{
280307
return ^(CGFloat offsetY, UIView *view, BOOL update){
281308

@@ -346,6 +373,19 @@ - (JHLayoutLeftEqualToView)leftIsEqualToView{
346373
};
347374
}
348375

376+
- (JHLayoutLeftEqualToRight)leftIsEqualToRight{
377+
return ^(CGFloat padding){
378+
379+
__weak typeof(self) ws = self;
380+
JHLayoutBlock block = ^(){
381+
[ws.layoutView jh_leftIsEqualToRight:padding];
382+
};
383+
[self.layoutArray addObject:block];
384+
385+
return self;
386+
};
387+
}
388+
349389
- (JHLayoutLeftOfView)leftOffsetLeftOfView{
350390
return ^(CGFloat offsetX, UIView *view, BOOL update){
351391

JHFrameLayout/UIView+JHFrameLayout.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
- (void)jh_originIs:(CGPoint)origin;
4040
- (void)jh_originISEqualToView:(UIView *)view;
4141

42+
// edge
43+
- (void)jh_edgeIs:(CGFloat)padding;
4244

4345
// width
4446
- (void)jh_widthIs:(CGFloat)width;
@@ -57,6 +59,7 @@
5759
/// top space in super view
5860
- (void)jh_topIs:(CGFloat)top;
5961
- (void)jh_topIsEqualToView:(UIView *)view;
62+
- (void)jh_topIsEqualToBottom:(CGFloat)padding;
6063
// if flag is YES, will update height to keep bottom space
6164
- (void)jh_topIs:(CGFloat)offsetY fromTopOfView:(UIView *)view updateHeight:(BOOL)flag;
6265
- (void)jh_topIs:(CGFloat)offsetY fromMiddleOfView:(UIView *)view updateHeight:(BOOL)flag;
@@ -66,6 +69,7 @@
6669
/// left space in super view
6770
- (void)jh_leftIs:(CGFloat)left;
6871
- (void)jh_leftIsEqualToView:(UIView *)view;
72+
- (void)jh_leftIsEqualToRight:(CGFloat)padding;
6973
// if flag is YES, will update width to keep right space
7074
- (void)jh_leftIs:(CGFloat)offsetX fromLeftOfView:(UIView *)view updateWidth:(BOOL)flag;
7175
- (void)jh_leftIs:(CGFloat)offsetX fromMiddleOfView:(UIView *)view updateWidth:(BOOL)flag;

JHFrameLayout/UIView+JHFrameLayout.m

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,12 @@ - (void)jh_originISEqualToView:(UIView *)view{
8181
[self jh_originIs:view.frame.origin];
8282
}
8383

84+
#pragma mark --- edge
85+
- (void)jh_edgeIs:(CGFloat)padding{
86+
[self jh_topIsEqualToBottom:padding];
87+
[self jh_leftIsEqualToRight:padding];
88+
}
89+
8490
#pragma mark --- width
8591
- (void)jh_widthIs:(CGFloat)width{
8692
CGRect frame = self.frame;
@@ -130,6 +136,11 @@ - (void)jh_topIsEqualToView:(UIView *)view{
130136
[self jh_topIs:CGRectGetMinY(view.frame)];
131137
}
132138

139+
- (void)jh_topIsEqualToBottom:(CGFloat)padding{
140+
[self jh_topIs:padding];
141+
[self jh_bottomIs:-padding fromBottomOfView:self.superview updateHeight:YES];
142+
}
143+
133144
- (void)jh_topIs:(CGFloat)offsetY fromTopOfView:(UIView *)view updateHeight:(BOOL)flag{
134145
[self xx_topIs:offsetY fromView:view add:0 updateHeight:flag];
135146
}
@@ -153,6 +164,11 @@ - (void)jh_leftIsEqualToView:(UIView *)view{
153164
[self jh_leftIs:CGRectGetMinX(view.frame)];
154165
}
155166

167+
- (void)jh_leftIsEqualToRight:(CGFloat)padding{
168+
[self jh_leftIs:padding];
169+
[self jh_rightIs:-padding fromRightOfView:self.superview updateWidth:YES];
170+
}
171+
156172
- (void)jh_leftIs:(CGFloat)offsetX fromLeftOfView:(UIView *)view updateWidth:(BOOL)flag{
157173
[self xx_leftIs:offsetX fromView:view add:0 updateWidth:flag];
158174
}

JHFrameLayoutDemo/.DS_Store

0 Bytes
Binary file not shown.

JHFrameLayoutDemo/JHFrameLayoutDemo/DemoVC/Demo14ViewController.m

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
//
77

88
#import "Demo14ViewController.h"
9+
#import "JHFrameLayout.h"
10+
911

1012
@interface Demo14ViewController ()
1113

@@ -17,8 +19,71 @@ - (void)viewDidLoad {
1719
[super viewDidLoad];
1820
// Do any additional setup after loading the view.
1921

22+
/**
23+
some more simple methods
24+
25+
一些简便的方法
26+
27+
*/
28+
29+
2030
self.navigationItem.title = @"Demo14";
2131
self.view.backgroundColor = [UIColor whiteColor];
32+
33+
UIView *view1 = [[UIView alloc] init];
34+
view1.backgroundColor = [UIColor brownColor];
35+
[self.view addSubview:view1];
36+
37+
UIView *view2 = [[UIView alloc] init];
38+
view2.backgroundColor = [UIColor orangeColor];
39+
[view1 addSubview:view2];
40+
41+
UIView *view3 = [[UIView alloc] init];
42+
view3.backgroundColor = [UIColor purpleColor];
43+
[view2 addSubview:view3];
44+
45+
UIView *view4 = [[UIView alloc] init];
46+
view4.backgroundColor = [UIColor grayColor];
47+
[view3 addSubview:view4];
48+
49+
UIView *view5 = [[UIView alloc] init];
50+
view5.backgroundColor = [UIColor yellowColor];
51+
view5.alpha = 0.5;
52+
[view4 addSubview:view5];
53+
54+
55+
[view1 jh_topIs:100];
56+
[view1 jh_heightIs:100];
57+
/*
58+
[view1 jh_leftIs:20];
59+
[view1 jh_rightIs:-20 fromRightOfView:self.view updateWidth:YES];
60+
*/
61+
[view1 jh_leftIsEqualToRight:20];
62+
63+
[view2 jh_leftIs:10];
64+
[view2 jh_widthIs:100];
65+
/*
66+
[view2 jh_topIs:10];
67+
[view2 jh_bottomIs:-10 fromBottomOfView:view1 updateHeight:YES];
68+
*/
69+
[view2 jh_topIsEqualToBottom:10];
70+
71+
72+
[view3 jh_leftIsEqualToRight:10];
73+
[view3 jh_topIsEqualToBottom:10];
74+
75+
/*
76+
[view4 jh_leftIsEqualToRight:20];
77+
[view4 jh_topIsEqualToBottom:20];
78+
*/
79+
[view4 jh_edgeIs:20];
80+
81+
//
82+
/*
83+
[view5 jh_leftIsEqualToRight:-10];
84+
[view5 jh_topIsEqualToBottom:-10];
85+
*/
86+
[view5 jh_edgeIs:-10];
2287
}
2388

2489
/*

0 commit comments

Comments
 (0)