文档章节

上拉刷新和下拉刷新

宁音雨雾
 宁音雨雾
发布于 2016/03/17 16:55
字数 388
阅读 287
收藏 4

使用方法:

定义属性

/// 下拉刷新
    private var refreshHeader: SDRefreshHeaderView?;

 

调用

    // MARK:
    // MARK: 下拉刷新
    /// 下拉刷新
    private func pulldownRefresh() {
        
        refreshHeader = SDRefreshHeaderView();
        
        refreshHeader!.addToScrollView(tableView);
        
        refreshHeader!.delegate = self;
        
        // 第一次进入就刷新 前提 有navigationBar
        refreshHeader!.autoRefreshWhenViewDidAppear();
        
    }

 

代理:

// MARK:
// MARK: 下拉刷新代理方法
extension <#XNCarManagementViewController#>: SDRefreshViewDelegate {
    
    func refreshIsDoing() {
        
        // 发送请求
        //inspectFamilyMembers();
    }
}

 

放回数据方法里结束动画

        // 结束刷新动画
        refreshHeader?.endRefreshing();

 

如果箭头位置不对可以试试

    // MARK: 视图已经显示
    override func viewDidAppear(animated: Bool) {
        
        super.viewDidAppear(animated);
        
        // 下拉刷新
        pulldownRefresh();
    }

 

从控制器返回后刷新,在viewWillDisappear调用代理方法

    // 告诉这个控制器 我关闭了
    func delegateCallLastControllerMeColode() {

        // 删除子控件
        refreshHeader?.removeAllSubviews();
        
        // 删除自己
        refreshHeader?.removeFromSuperview();
        
        // 至为 nil
        refreshHeader = nil;
        
        // 发送请求获取房间列表
        requestCarInfo();
        
        // 下拉刷新 重新加载
        pulldownRefresh();
    }


2016/6/21

使用过程发现的问题:

要在tabView创建好之后创建SDRefreshHeaderView的子类

控制器被强引用,解决方法:把block替换成代理

 

进入A,A初始下拉刷新,A->B,B->A,想让A初始下拉刷新.

定义为可选类型.

然后在B写代理方法,A执行

        // 删除子控件
        refreshHeader?.removeAllSubviews();
        
        // 删除自己
        refreshHeader?.removeFromSuperview();
        
        // 至为 nil
        refreshHeader = nil;
        
        // 发送请求
       
        
        // 下拉刷新 重新加载
        pulldownRefresh();

 

关闭下拉刷新的控制器,程序崩溃.

解决思路:

出现问题是因为在动画执行的代理方法里,你写的代码产生的冲突.


 

演示Demo点此下载

 

原Demo点此


 

仿京东下拉刷新Demo


原Demo点此

© 著作权归作者所有

宁音雨雾
粉丝 55
博文 312
码字总数 48631
作品 0
东城
程序员
私信 提问
Weex中调用原生下拉刷新

Weex官方文档提供了下拉刷新和上拉刷新的内建组件和。但是功能单一且和App中原生的下拉刷新样式不一样,只能抛弃了。而前端自己写组件,效果也很难和原生保持一致。 组件在iOS的WeexSDK源码中...

HJaycee
2017/08/15
0
0
Android 下拉刷新、上拉加载库--BGARefreshLayout

BGARefreshLayout包含多种下拉刷新效果、上拉加载更多、可配置自定义头部广告位 。 效果图: 目前已经实现了四种下拉刷新效果: 新浪微博下拉刷新风格(可设置各种状态是的文本,可设置整个刷...

bingoogolapple
2016/06/22
2.5K
0
Sea_蝰/CustomRecycler

CustomRecycler V1.0.1 Add it in your root build.gradle at the end of repositories: allprojects {repositories {...maven { url 'https://jitpack.io' }}} Step 2. Add the dependency ......

Sea_蝰
2018/08/14
0
0
Jaynm/PullToRefreshListView

PullToRefreshScrollViewDemo Android使用PullToRefresh完成ListView下拉刷新和左滑删除 一、本文主要内容: 使用PullToRefresh完成ListView下拉、上拉刷新; 扩展PullToRefresh完美的实现L...

Jaynm
2016/11/03
0
0
那些年不容错过的智能下拉刷新加载框架

一些值得学习的几个下拉刷新上拉加载开源库 功能齐全的AnimRefreshRecyclerView 根据列表的不同效果选择不同的布局管理器 根据不同的布局管理器设置分割线: 设置Header和Footer 手动刷新 An...

codeGoogle
2017/09/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

移动开发中的 Web:WebView、WebKit、JSCore、Web 优化、热修复、跨平台、Native、Hybrid……

移动开发领域近年来已经逐渐告别了野蛮生长的时期,进入了相对成熟的时代。而一直以来 Native 和 Web 的争论从未停止,通过开发者孜孜不倦的努力,Web 的效率和 Native 的体验也一直在寻求着...

编辑部的故事
14分钟前
9
0
MySQL8.0.17 - Multi-Valued Indexes 简述

本文主要简单介绍下8.0.17新引入的功能multi-valued index, 顾名思义,索引上对于同一个Primary key, 可以建立多个二级索引项,实际上已经对array类型的基础功能做了支持 (感觉官方未来一定...

阿里云官方博客
今天
10
0
make4.1降级 make-3.81、2错误

在编译 make-3.82 的时候出现如下错误提示 glob/glob.c:xxx: undefined reference to `__alloca'` 修改 /glob/glob.c // #if !defined __alloca && !defined __GNU_LIBRARY__ # ifdef __GNUC......

Domineering
今天
14
0
Rainbond集群的安装和运维的原理

本文将解读Rainbond集群的安装和运维的原理,使用户基本了解Rainbond的安装机制和运维重点,便于用户搭建大型Rainbond集群。 1.Rainbond集群节点概述 1.1 节点分类 属性 类型 说明 manage 管...

好雨云帮
今天
10
0
好程序员大数据学习路线分享UDF函数

1.为什么需要UDF? 1)、因为内部函数没法满足需求。 2)、hive它本身就是一个灵活框架,允许用自定义模块功能,如可以自定义UDF、serde、输入输出等。 2.UDF是什么? UDF:user difine fun...

好程序员官方
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部