@interface HeadrView : UIView
@property (nonatomic, strong) UIScrollView *scrollView;
@end
#import "HeadrView.h"
#import "Masonry.h"
@interface HeadrView ()<UIScrollViewDelegate>
{
CGFloat topHeight;
CGFloat bottomHeight;
CGFloat sumHeight;
UIView *topView;
UIView *bottomView;
CGFloat beginContentY; //开始滑动的位置
}
@end
@implementation HeadrView
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
topHeight = 64;
bottomHeight = 170;
sumHeight = -bottomHeight-topHeight;
topView = [UIView new];
topView.backgroundColor = [UIColor redColor];
bottomView = [UIView new];
bottomView.backgroundColor = [UIColor lightGrayColor];
[self addSubview:topView];
[self addSubview:bottomView];
[topView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.mas_top);
make.left.equalTo(self.mas_left);
make.right.equalTo(self.mas_right);
make.height.equalTo(@(64));
}];
[bottomView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(topView.mas_bottom);
make.left.equalTo(self.mas_left);
make.right.equalTo(self.mas_right);
make.height.equalTo(@(170));
}];
self.clipsToBounds = YES;
[self.layer setMasksToBounds:YES];
}
return self;
}
- (void)willMoveToSuperview:(UIView *)newSuperview
{
self.scrollView.contentInset = UIEdgeInsetsMake(bottomHeight+topHeight, 0, 0, 0);
self.scrollView.delegate = self;
}
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
beginContentY = scrollView.contentOffset.y; //开始滑动的位置
}
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
CGFloat endContentY = scrollView.contentOffset.y;
if (endContentY-beginContentY >= 0)
{
[UIView animateWithDuration:0.25 animations:^{
self.alpha = 0;
self.frame = CGRectMake(0, sumHeight, self.frame.size.width, self.frame.size.height);
self.scrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
} completion:^(BOOL finished) {
}];
}
else
{
[UIView animateWithDuration:0.25 animations:^{
self.alpha = 1;
self.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
self.scrollView.contentInset = UIEdgeInsetsMake(bottomHeight+topHeight, 0, 0, 0);
} completion:^(BOOL finished) {
}];
}
}