zoukankan      html  css  js  c++  java
  • 实现下拉刷新效果 仅适用于IOS 6.0

    iOS6.0中的一个新控件UIRefreshControl

    照例上图

    今天逛论坛看到别人发的帖子,说此控件只能用于UITableViewController,如果用在其他ViewController中,运行时会得到如下错误提示:(即UIRefreshControl只能被UITableViewController管理)

    其实他忽略了一点,在ViewController上可以调用

    - (void)addSubview:(UIView *)view;

    来进行添加UITableViewController,再添加UITableView,这样UIRefreshControl依旧由UITableViewController管理,但在其他ViewController中依旧可以使用。为了使用原生的下拉效果,你说我们容易吗!

    例子结构:

    VC_view 继承于 UIViewController

    TV_table 继承于 UITableViewController

    VC_view 重点代码

    #pragma mark -
    #pragma mark Custom Methods
    /******************************************************************************
     函数名称 : - (void)refreshData
     函数描述 : 刷新视图数据
     输入参数 : N/A
     输出参数 : N/A
     返回参数 : N/A
     备注信息 :
     ******************************************************************************/
    - (void)refreshData{
        self.pTV_table = [[TV_table alloc] initWithNibName:@"TV_table" bundle:nil];
        self.pTV_table.view.frame = CGRectMake(0, 0, 320, 416);
        [_pV_main addSubview:_pTV_table.tableView];
    }

    在UIViewController 添加别的Controller Or View 必须声明全局变量

    //引入UITableViewController,必须在需引入的控制器中声明其全局变量,不能声明为局部变量。
    @property (strong, nonatomic) TV_table *pTV_table;

    这是ARC的特点

    TV_table 重点代码

    /******************************************************************************
     函数名称 : - (void)configRefreshControl
     函数描述 : 配置RefreshControl
     输入参数 : N/A
     输出参数 : N/A
     返回参数 : N/A
     备注信息 :
     ******************************************************************************/
    - (void)configRefreshControl{
        UIRefreshControl *refresh = [[UIRefreshControl alloc] init];
        refresh.tintColor = [UIColor lightGrayColor];
        refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"下拉刷新"];
        [refresh addTarget:self action:@selector(refreshView)
          forControlEvents:UIControlEventValueChanged];
        self.refreshControl = refresh;
    }
    /******************************************************************************
     函数名称 : - (void)handleData
     函数描述 : 处理数据
     输入参数 : N/A
     输出参数 : N/A
     返回参数 : N/A
     备注信息 :
     ******************************************************************************/
    -(void)handleData
    {
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setDateFormat:@"yyyy年MM月dd日 HH:mm:ss"];
        NSString *lastUpdated = [NSString stringWithFormat:@"最后更新于 %@",
                                 [formatter stringFromDate:[NSDate date]]];
        self.refreshControl.attributedTitle = [[NSAttributedString alloc]
                                               initWithString:lastUpdated];
        self.count++;
        [_pMuArr_dataSource insertObject:[NSString stringWithFormat:@"%d. %@,簡簡單單WZP感觉",
                                          _count,
                                          [formatter stringFromDate:[NSDate date]]] atIndex:0];
        
        [self.refreshControl endRefreshing];
        [self.tableView reloadData];
    }
    /******************************************************************************
     函数名称 : - (void)refreshView
     函数描述 : 刷新视图
     输入参数 : N/A
     输出参数 : N/A
     返回参数 : N/A
     备注信息 :
     ******************************************************************************/
    -(void)refreshView
    {
        if (self.refreshControl.refreshing) {
            self.refreshControl.attributedTitle = [[NSAttributedString alloc]
                                                   initWithString:@"加载数据..."];
            [self performSelector:@selector(handleData) withObject:nil afterDelay:2];
        }
    }

    PRJ_pullDownRefresh6.0.zip 下载地址:http://ishare.iask.sina.com.cn/f/34851880.html

  • 相关阅读:
    css预编译器stylus
    使用element的upload组件实现上传图片功能
    《百年孤独读后感》
    socket_server
    socket-client
    面向对象基础-初步介绍
    re正则表达式
    实战2-计算器:输入这段公式("1
    python-常用模块
    实战-ATM+购物车项目软件目录规范
  • 原文地址:https://www.cnblogs.com/thefeelingofsimple/p/2793160.html
Copyright © 2011-2022 走看看