feat:optimize iOS's swipelayout

This commit is contained in:
pengfei.zhou 2019-12-03 11:39:42 +08:00
parent eefea8bc2a
commit 06f473e1c6

View File

@ -68,6 +68,10 @@ - (BOOL)requestFromSubview:(UIView *)subview {
return [super requestFromSubview:subview]; return [super requestFromSubview:subview];
} }
- (void)layoutSubviews {
[super layoutSubviews];
}
- (void)layoutSelf:(CGSize)targetSize { - (void)layoutSelf:(CGSize)targetSize {
if (self.contentOffset.y != 0) { if (self.contentOffset.y != 0) {
return; return;
@ -125,31 +129,14 @@ - (void)setRefreshing:(BOOL)refreshing {
return; return;
} }
if (refreshing) { if (refreshing) {
[self setContentOffset:CGPointMake(0, -self.headerView.height) animated:YES];
self.scrollEnabled = NO;
if (self.onRefreshBlock) { if (self.onRefreshBlock) {
self.onRefreshBlock(); self.onRefreshBlock();
} }
[UIView animateWithDuration:.3f
animations:^{
self.contentOffset = (CGPoint) {0, -self.headerView.height};
self.contentInset = UIEdgeInsetsMake(self.headerView.height, 0, 0, 0);
}
completion:^(BOOL finished) {
[self.swipePullingDelegate startAnimation];
self.scrollEnabled = NO;
}
];
} else { } else {
self.bounces = YES; [self setContentOffset:(CGPoint) {0, 0} animated:YES];
[UIView animateWithDuration:.3f self.scrollEnabled = YES;
animations:^{
self.contentOffset = (CGPoint) {0, 0};
self.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
}
completion:^(BOOL finished) {
[self.swipePullingDelegate stopAnimation];
self.scrollEnabled = YES;
}
];
} }
_refreshing = refreshing; _refreshing = refreshing;
} }