文档章节

IOS自定义TableFooterView

xx明
 xx明
发布于 2014/12/11 18:07
字数 614
阅读 10854
收藏 3
  1. 自定义类MLTgFooterView 和 MLTgFooterViewDelegate

#import <UIKit/UIKit.h>
/**
 1.协议名称: 控件类名 + Delegate
 2.代理方法普遍都是@optional
 3.代理方法一般以空间名开头,不包含前缀
 */

@protocol MLTgFooterViewDelegate <NSObject>

@optional//不强求实现
-(void)tgFooterViewDidClickedLoadBtn:(MLTgFooterView *)tgFooterView;
@end

@interface MLTgFooterView : UIView

@property(nonatomic , weak)id<MLTgFooterViewDelegate> delegate;
//用来快速创建一个footView对象.
+(instancetype)fgFooterView;
-(instancetype)initTgFooterView;

@end


 2.自定义类MLTgFooterView的实现

#import "MLTgFooterView.h"

@interface MLTgFooterView ()
@property (weak, nonatomic) IBOutlet UIButton *loadBtn;
@property (weak, nonatomic) IBOutlet UIView *loadingView;

-(IBAction)loadBtnClick;

@end

@implementation MLTgFooterView

+(instancetype)fgFooterView{
    return [[self alloc]initTgFooterView];
}
-(instancetype)initTgFooterView{
    
    //初始化一个nib对象(包含xib中的所有信息)-----另一种加载Xib文件的方法
    //UINib *nib = [UINib nibWithNibName:@"MLTableFooterView" bundle:nil];
    
    //返回的是xib中所有的文件的数组,因为此xib中只有一个,故用fistObject获取改自定义的View.
    //UIView *footView =  [[nib instantiateWithOwner:nil options:nil] firstObject];

    
    return [[[NSBundle mainBundle] loadNibNamed:@"MLTgFooterView" owner:nil options:nil] firstObject];
}

-(IBAction)loadBtnClick{
    //隐藏加载按钮
    self.loadBtn.hidden = YES;
    //显示正在加载的view
    self.loadingView.hidden = NO;
    
    //显示更多数据
    //使用C语言实现延迟
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        if ([self.delegate respondsToSelector:@selector(tgFooterViewDidClickedLoadBtn:)]) {
            //加载数据
            [self.delegate tgFooterViewDidClickedLoadBtn:self];
            //显示加载按钮
            self.loadBtn.hidden = NO;
            //隐藏"正在加载"
            self.loadingView.hidden = YES;
            
        }
    });
    
}


  3.控制器实现自定义tableFooterView的部分代码,以及使用实现MLTgFooterViewDelegate协议来完成数据的模拟加载.(首先控制器要继承MLTgFooterViewDelegate协议)

//使用自定义的tableFooterView
    MLTgFooterView *footer = [MLTgFooterView fgFooterView];
    footer.delegate = self;
    
    self.tableView.tableFooterView = footer;

    

-(void)tgFooterViewDidClickedLoadBtn:(MLTgFooterView *)tgFooterView{
    //添加更多的模型数据(虚拟数据)
    MLTg *tg = [[MLTg alloc]init]; //其中MLTg是个数据模型,_tgs是控制器的成员,用来保存所有的数据模型.
    tg.icon = @"ad_00";
    tg.title = @"新增加的团购数据..";
    tg.price = @"100";
    tg.buyCount = @"0";
    
    //将数据天道_tgs中
    [_tgs addObject:tg];
    //刷新表格(告诉tableView重新加载模型数据,调用tableView的reloadData)
    [self.tableView reloadData];
}



   

© 著作权归作者所有

xx明
粉丝 5
博文 29
码字总数 10912
作品 0
朝阳
私信 提问
iOS开发tips-神奇的UITableView

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jianxin160/article/details/71436920 概述 UITableView是iOS开发中使用频率最高的UI控件,在前面的文章中对于...

KenshinCui
2017/05/08
0
0
IOS学习,最简单的表格应用程序,学习,列出博客

IOS编程浅蓝教程,这是博客地址http://www.cnblogs.com/haichao/category/425378.html IOS编程浅蓝教程:锲子 IOS编程浅蓝教程(一)先决条件:开始iOS编程的必要准备 IOS编程浅蓝教程(二) Hel...

andy521zhu
2015/01/17
186
0
iphone开发资源汇总

学习过程当中查找到的资料,做一个记录,以便更多朋友查看。 开发的过程有时候是简单的,因为我们可以站在巨人的肩上,跳得更高,走得更远。 如何用Facebook graphic api上传视频: http://d...

长平狐
2012/08/13
482
0
iphone开发资源汇总

iphone开发资源汇总 如何用Facebook graphic api上传视频: http://developers.facebook.com/blog/post/532/ Keychain保存数据封装: https://github.com/carlbrown/PDKeychainBindingsContr......

长平狐
2012/10/25
249
0
浅谈iOS开发中的对象归档

iOS提供的数据持久化方式有:SQLiteCoreData属性列表、NSUserDefault对象归档。 这里来简单介绍下iOS开发中的对象归档: 对象归档是将对象归档以文件的形式保存到磁盘中(也称为序列化,持久化...

泊菜
2014/11/27
4K
8

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
4
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
5
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部