美文网首页
封装一个下拉一体效果

封装一个下拉一体效果

作者: 雪_晟 | 来源:发表于2017-07-17 23:06 被阅读35次
下拉一体‘.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地址:下拉一体

相关文章

  • 封装一个下拉一体效果

    下拉一体效果,是利用tableview的contentInset。把view添加到tableview上,根据scr...

  • SwiftUI:下拉刷新和上拉加载更多(非桥接UIKit)

    1、效果: 2、SwiftUI的列表自带下拉刷新属性(refreshable),以下分享的代码为自定义效果: 封装...

  • iOS 线条拼字-下拉刷新

    分享给大家一个 iOS 的用线条拼写的下拉刷新,效果如下: 在这里我要给大家推荐一个封装好动画效果和线条宽度的一个...

  • iOS仿微信、支付宝首页下拉菜单选择视图

    效果图展示、自动优化位置(上拉、下拉、左偏、右偏) 下拉菜单组件化封装的需求 项目开发初期、需求并不明确、没有统一...

  • 面向对象实战

    封装一个轮播组件 代码效果预览 封装一个曝光加载组件 效果代码预览 封装一个 Tab 组件 效果代码

  • iOS 右上角下拉的菜单

    LHPopMenu 类似微信和支付宝右上角下拉的菜单封装,使用简单,欢迎star。 Github地址 效果图如下:...

  • Element UI 二次封装实现下拉树组件

    使用element ui 二次封装实现下拉树组件,可以搜索,可以动态绑定 一 实现效果图 1.1 单选模式 1.2...

  • 面向对象实战

    题目1: 封装一个轮播组件封装轮播组件(效果)代码题目2: 封装一个曝光加载组件封装曝光加载(效果)代码题目3: ...

  • 简单记录上拉加载更多实现思路

    原文链接 下拉刷新、上拉加载更多是移动端常见的交互效果,也有很多封装好的库供我们方便的调用。但是如果只是一个简单的...

  • JS面向对象实践

    题目1: 封装一个轮播组件 效果 代码 题目2: 封装一个曝光加载组件 效果 代码 题目3: 封装一个 Tab 组...

网友评论

      本文标题:封装一个下拉一体效果

      本文链接:https://www.haomeiwen.com/subject/iltckxtx.html