[iOS基础控件 - 6.6] 展示团购数据 自定义TableViewCell


- // 设置尾部控件
- self.tableView.tableFooterView = footerView;



- 新建xib描述view的结构
- 新建一个继承UIView的类(取决于xib根对象的class)
- 新建类名,和xib保持一致
@interface FooterRefreshView : UIView - 设置xib控件的class,连线
- 在自定义class中定义xib的加载类方法(屏蔽xib加载过程)
- /** 初始化方法 */
- + (instancetype) footerRrefreshViewWithDelegate:(id<FooterRefreshViewDelegate>) delegate {
- FooterRefreshView *footerRefreshView = [[[NSBundle mainBundle] loadNibNamed:@"FooterRefreshView" owner:nil options:nil] lastObject];
- if (nil != delegate) {
- footerRefreshView.delegate = delegate;
- }
- return footerRefreshView;
- }
- /** 初始化方法 */
- class持有controller引用,发送消息给controller刷新数据
下面使用代理模式
- 自定义view的class持有controller的引用,耦合性强 —>使用代理
- 协议命名规范:控件类名+Delegate
- 代理方法普遍都是@optional
- 代理对象遵守代理协议,实现代理协议里面的方法
- 在需要的地方调用代理方法,给代理发送消息
- FooterRefreshView.h
- #import <UIKit/UIKit.h>
- @class FooterRefreshView;
- // 定义delegate协议
- @protocol FooterRefreshViewDelegate <NSObject>
- @optional
- - (void) footerRefreshViewClickedFooterRefreshButton:(FooterRefreshView *) footerRefreshView;
- @end
- @interface FooterRefreshView : UIView
- + (instancetype) footerRrefreshViewWithDelegate:(id<FooterRefreshViewDelegate>) delegate;
- @end
- // xib控件的初始化调用方法
- - (void)awakeFromNib {
- self.loadingImage.hidden = YES;
- }



- /** 自定初始化的类方法,传入model数据 */
- + (instancetype) groupPurchaseCellWithGroupPurchase:(GroupPurchase *) groupPurchase;
- /** 自定初始化的类方法,传入model数据 */
- + (instancetype) groupPurchaseCellWithGroupPurchase:(GroupPurchase *) groupPurchase {
- GroupPurchaseCell *cell = [[[NSBundle mainBundle] loadNibNamed:@"GroupPurchaseCell" owner:nil options:nil] lastObject];
- // 加载model中的数据,初始化界面
- cell.groupPurchase = groupPurchase;
- return cell;
- }
- /** 没有model数据的空cell */
- + (instancetype)groupPurchaseCell {
- return [self groupPurchaseCellWithGroupPurchase:nil];
- }
- /** 加载Model数据,初始化界面 */
- - (void) setGroupPurchase:(GroupPurchase *) groupPurchase {
- if (nil != groupPurchase) {
- self.titleLabel.text = groupPurchase.title;
- self.iconImageView.image = [UIImage imageNamed:groupPurchase.icon];
- self.priceLabel.text = [NSString stringWithFormat:@"¥%@", groupPurchase.price];
- self.buyCountLabel.text = [NSString stringWithFormat:@"%@人已经购买", groupPurchase.buyCount];
- }
- _groupPurchase = groupPurchase;
- }


- // 广告组
- @property(nonatomic, strong) NSArray *ads;
- /** 设置ads */
- - (void) setAds:(NSArray *)ads {
- if (nil != ads) {
- CGFloat adImageWidth = AD_VIEW_WIDTH;
- CGFloat adImageHeight = AD_VIEW_HEIGHT;
- CGFloat adImageY = ;
- for (int i=; i<ads.count; i++) {
- // 计算当前图片的水平坐标
- CGFloat adImageX = i * adImageWidth;
- UIImageView *adImageView = [[UIImageView alloc] initWithFrame:CGRectMake(adImageX, adImageY, adImageWidth, adImageHeight)];
- adImageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@", ads[i]]];
- [self.scrollView addSubview:adImageView];
- }
- // 设置滚动
- self.scrollView.contentSize = CGSizeMake(ads.count * AD_VIEW_WIDTH, );
- self.scrollView.scrollEnabled = YES;
- }
- _ads = ads;
- }
- //设置头部广告
- HeaderAdView *adView = [self genAdView]; // 手动拼装广告图片数据
- self.tableView.tableHeaderView = adView;

[iOS基础控件 - 6.6] 展示团购数据 自定义TableViewCell的更多相关文章
- [iOS基础控件 - 6.11.5] 沙盒 & 数据存储
A.沙盒 每个APP都有一个沙盒,是独立存在的 1.Xcode5和Xcode6的模拟器文件目录 a.模拟器路径改版 (1)Xcode5中模拟器路径为:/Users/用户名/Library/Appl ...
- [iOS基础控件 - 5.5] 代理设计模式 (基于”APP列表"练习)
A.概述 在"[iOS基础控件 - 4.4] APP列表 进一步封装,初见MVC模式”上进一步改进,给“下载”按钮加上效果.功能 1.按钮点击后,显示为“已下载”,并且不 ...
- [iOS基础控件 - 6.7] 微博展示 使用代码自定义TableCell(动态尺寸)
A.需求 1.类似于微博内容的展示 2.头像 3.名字 4.会员标志 5.内容 6.分割线 7.配图(可选,可有可无) code source: https://github.com/hellov ...
- [iOS基础控件 - 5.1] UIScrollView
A.需要掌握 UIScrollView 是一个能够滚动的视图控件,可以用来展示大量内容,如手机的“设置” 1.常见属性 2.常用代理方法 3.缩放 4.UIScrollView和UIPageContr ...
- [iOS基础控件 - 6.6.1] 展示团购数据代码
1.主控制器: // // ViewController.m // GroupPurchase // // Created by hellovoidworld on 14/12/3. // Cop ...
- [iOS基础控件 - 6.7.1] 微博展示 代码
Controller: // // ViewController.m // Weibo // // Created by hellovoidworld on 14/12/4. // Copyrig ...
- iOS 基础控件(下)
上篇介绍了UIButton.UILabel.UIImageView和UITextField,这篇就简短一点介绍UIScrollView和UIAlertView. UIScrollView 顾名思义也知 ...
- [iOS基础控件 - 6.9] 聊天界面Demo
A.需求 做出一个类似于QQ.微信的聊天界面 1.每个cell包含发送时间.发送人(头像).发送信息 2.使用对方头像放在左边,我方头像在右边 3.对方信息使用白色背景对话框,我方信息使用蓝色背景对话 ...
- [iOS基础控件 - 7.0] UIWebView
A.基本使用 1.概念 iOS内置的浏览器控件 Safari浏览器就是通过UIWebView实现的 2.用途:制作简易浏览器 (1)基本请求 创建请求 加载请求 (2)代理监听webView加载, ...
随机推荐
- codeforces #305 D Mike and Fish
正解貌似是大暴搜? 首先我们考虑这是一个二分图,建立网络流模型后很容易得出一个算法 S->行 容量为Num[X]/2; 行->列 容量为1 且要求(x,y)这个点存在 列->T 容量 ...
- 李洪强iOS开发本人集成环信的经验总结_07_监听好友请求
李洪强iOS开发本人集成环信的经验总结_07_监听好友请求 来到Appdalegate中: 遵守代理协议 设置代理 实现监听好友请求的回调的方法
- 新的HTTP框架:Daraja Framework
https://www.habarisoft.com/daraja_framework.html
- 列出man手册所有函数的方法
locate /man7/|sed -r 's#.*/([^/]+).7.gz$#\1#' locate /man7/ | xargs basename -a -s '.7.gz' apropos - ...
- C# winform DataGridView
C# DataGridView控件动态添加新行 DataGridView控件在实际应用中非常实用,特别需要表格显示数据时.可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行.假如 ...
- 【HDOJ】2388 Playground Hideout
优先级队列直接AC. /* 2388 */ #include <iostream> #include <sstream> #include <string> #in ...
- CentOS升级git
1.首先查看下当前的版本 [root@localhost ~]# git --versiongit version 1.8.2.1 2.尝试进行升级 [root@localhost ~]# yum u ...
- 转: Linux 技巧:让进程在后台可靠运行的几种方法
我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败.如何让命令提交后不受本地关闭终端窗口/网络断开 ...
- vfp 操作excel
VFP全面控制EXCEL 收藏 VFP和Excel都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合起来,将会大大方便我们的工作.比如我们可以利用VFP进行处理数据,而利用Excel的预览打印功 ...
- UVa 11440 (欧拉函数) Help Tomisu
题意: 给出N和M,统计区间x ∈ [2, N!],x满足所有素因子都大于M的x的个数. 分析: 首先将问题转化一下,所有素因子都大于M 等价于 这个数与M!互素 对于k大于M!,k与M!互素等价于 ...