![](https://img.haomeiwen.com/i1694376/a410f3eb3482518a.gif)
下拉一体效果,是利用tableview的contentInset。把view添加到tableview上,根据scrollview的滚动实现即可。
所以可以封装一个一劳永逸。
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface PullDownZoom : NSObject
-(instancetype)initWithTableview:(UIScrollView *)tableview headerH:(CGFloat)headerH header:(UIView *)header;
-(void)scrollZoom;
@end
传入tableview 与需要下拉的view,以及对应的高度,处理如下。
#import "PullDownZoom.h"
#import "UIView+Frame.h"
@interface PullDownZoom()<UIScrollViewDelegate>
@property(nonatomic,strong)UIScrollView *tableview;
@property(nonatomic,assign)CGFloat headerH;
@property(nonatomic,strong)UIView *header;
@end
@implementation PullDownZoom
-(instancetype)initWithTableview:(UIScrollView *)tableview headerH:(CGFloat)headerH header:(UIView *)header
{
self = [super init];
if (self) {
self.tableview = tableview;
self.tableview.delegate = self;
self.headerH = headerH;
self.header = header;
self.tableview.contentInset = UIEdgeInsetsMake(self.headerH, 0, 0, 0);
}
return self;
}
-(void)scrollZoom{
[self scrollViewDidScroll:self.tableview];
}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGFloat y = scrollView.contentOffset.y;
if ( y < - self.headerH) {
self.header.y = y;
self.header.height = -y;
}
}
@end
所以只需要两步,即可。
1、第一步:引入,初始化
self.zoom = [[PullDownZoom alloc]initWithTableview:self.tableview headerH:300 header:self.header];
2、第二步:在scrollview滚动的地方设置
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
[self.zoom scrollZoom];
}
demo地址:下拉一体
网友评论