feat:step7
This commit is contained in:
parent
e3cb635358
commit
efd71a69cb
@ -5,7 +5,6 @@
|
|||||||
#import "DoricSwipeRefreshLayout.h"
|
#import "DoricSwipeRefreshLayout.h"
|
||||||
#import "UIView+Doric.h"
|
#import "UIView+Doric.h"
|
||||||
#import "DoricLayouts.h"
|
#import "DoricLayouts.h"
|
||||||
#import "Doric.h"
|
|
||||||
|
|
||||||
@interface DoricSwipeRefreshLayout () <UIScrollViewDelegate>
|
@interface DoricSwipeRefreshLayout () <UIScrollViewDelegate>
|
||||||
|
|
||||||
@ -40,9 +39,18 @@ - (CGSize)sizeThatFits:(CGSize)size {
|
|||||||
return CGSizeZero;
|
return CGSizeZero;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (BOOL)requestFromSubview:(UIView *)subview {
|
||||||
|
if (subview == self.headerView) {
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
return [super requestFromSubview:subview];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)layoutSelf:(CGSize)targetSize {
|
- (void)layoutSelf:(CGSize)targetSize {
|
||||||
[super layoutSelf:targetSize];
|
[super layoutSelf:targetSize];
|
||||||
[self.contentView layoutSelf:targetSize];
|
self.headerView.bottom = 0;
|
||||||
|
self.headerView.centerX = self.centerX;
|
||||||
|
self.contentSize = self.frame.size;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setContentView:(UIView *)contentView {
|
- (void)setContentView:(UIView *)contentView {
|
||||||
|
@ -94,4 +94,6 @@ typedef NS_ENUM(NSInteger, DoricGravity) {
|
|||||||
- (CGSize)measureSize:(CGSize)targetSize;
|
- (CGSize)measureSize:(CGSize)targetSize;
|
||||||
|
|
||||||
- (void)doricLayoutSubviews;
|
- (void)doricLayoutSubviews;
|
||||||
|
|
||||||
|
- (BOOL)requestFromSubview:(UIView *)subview;
|
||||||
@end
|
@end
|
@ -101,20 +101,23 @@ - (void)layoutSelf:(CGSize)targetSize {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (BOOL)requestSuperview {
|
|
||||||
return self.layoutConfig
|
|
||||||
&& self.layoutConfig.widthSpec != DoricLayoutExact
|
|
||||||
&& self.layoutConfig.heightSpec != DoricLayoutExact;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)doricLayoutSubviews {
|
- (void)doricLayoutSubviews {
|
||||||
if ([self requestSuperview]) {
|
if ([self.superview requestFromSubview:self]) {
|
||||||
[self.superview doricLayoutSubviews];
|
[self.superview doricLayoutSubviews];
|
||||||
} else {
|
} else {
|
||||||
[self layoutSelf:CGSizeMake(self.width, self.height)];
|
[self layoutSelf:CGSizeMake(self.width, self.height)];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (BOOL)requestFromSubview:(UIView *)subview {
|
||||||
|
if (self.layoutConfig
|
||||||
|
&& self.layoutConfig.widthSpec != DoricLayoutExact
|
||||||
|
&& self.layoutConfig.heightSpec != DoricLayoutExact) {
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
@end
|
@end
|
||||||
|
|
||||||
DoricMargin DoricMarginMake(CGFloat left, CGFloat top, CGFloat right, CGFloat bottom) {
|
DoricMargin DoricMarginMake(CGFloat left, CGFloat top, CGFloat right, CGFloat bottom) {
|
||||||
|
Reference in New Issue
Block a user