iOS开发-通过xib自定义cell-团购列表

自定义cell
1.通过xib
1>一定要注意在xib的cell中设置重用标识(reuse identifier)
2>封装的步骤
*换继承,重新拖TableView,然后实现数据源方法
*新建xib描述cell的样子---DealCell.xib并把cell的高度设置为80,然后拖控件
*新建UITableViewCell的子类---DealCell(用来封装xib内部的所有东西)
*将xib中Cell的Class改为DealCell
*在DealCell中拥有xib中的所有子控件(声明属性,进行连线)
*每一条团购都有一大堆数据,所以每一条团购都需要一个模型,故新建模型Deal,封装这些数据(因为只有属性,所以继承自NSObject),在Deal.h中声明每一条cell的5个属性(其中一个是BOOL类型)
*给DealCell增加Deal模型属性,Cell的子控件显示什么数据取决于这个模型属性里面的数据
@property (nonatomic,strong)Deal *deal;
*在DealCell.m中导入Deal.h并重写setDeal:方法,在这个方法中根据模型数据设置cell内部子控件的属性
-(void)setDeal:(Deal *)deal
{
_deal = deal;

//1.标题
_titleLabel.text = deal.title;

//2.购买人数
_buyLabel.text = [NSString stirngWithFormat:@"购买:%d",dela.buy];

//3.价格
_priceLabel.text = [NSString stirngWithFormat:@"价格:%d",dela.price];

//4.图片
_iconView.image = [UIImage imageNamed:deal.icon];

//5.是否显示最新
_dealNewView.hidden = !deal.isNew;
}

*在DealCell中创建一个类方法快速返回一个xib创建好的cell对象,这样创建cell只需要调用这个类方法即可
+(id)dealCell
{
return [[NSBundle mainBundle] loadNibNamed:@”DealCell“ owner:nil options:nil][0];
}
创建完之后再调用set方法传数据,即可。

*给xib中的cell添加一个重用标识deal
然后在DealCell中创建一个类方法ID返回标识,设置标识时直接调用这个类方法即可
然后再创建一个方法cellHeight返回cell的高度。(这样控制器就不用改代码了,只负责调用这个方法。要改直接在方法里改。)

*在控制器实现文件中导入Deal.h和DealCell.h
在类扩展中声明一个数组成员变量_deals
在ViewDidLoad中
Deal *d1 = ....

_deals = @[d1,。。。。];

并实现数据源方法
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return _deals.count;
]

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//1.缓存池取出cell
DealCell *cell = [tableView dequeueReusableCellWithIdentifier:[DealCell ID]];
//2.缓存池没有则重新创建
if(cell == nil){
cell = [DealCell dealCell];
}
//3.传递模型
cell.deal = _deals[indexPath.row];

return cell;
}

3>使用cell
*设置每一行cell的高度
*利用重用标识去缓存池取得cell
*如果缓存池没有cell,创建cell
*传递模型给cell

时间: 2024-07-30 01:04:28

iOS开发-通过xib自定义cell-团购列表的相关文章

【iOS开发-62】自定义cell制作团购页面、顶部图片轮播、底部模拟加载更多功能,核心是练习代理模式

(1)效果 (2)案例源代码免费下载 团购页面+iOS源代码+头部广告轮播+底部加载更多 (3)补充 在源代码中,有一处瑕疵:就是因为是单线程,所以在上下拖动页面的时候,上面的图片轮播会停止.所以我们需要兼顾,解决方案,把定时器加到当前的runLoop中. 即在WPTgHeaderView.m的playOn方法中添加一行代码: -(void)playOn{ timer=[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector

iOS开发-通过代码自定义cell

一.添加子控件和传递模型数据注意:子控件位置不固定,不能写死时就用代码自定义cell步骤一:将控制器改为继承UITableViewController,然后删除故事板上原来的View,新拖一个TableView,并将Class改为控制器步骤二:新建一个类WeiboCell,继承自UITableViewCell步骤三:在控制器实现文件中导入WeiboCell.h第三个数据源方法 static NSString *ID = @“weibo”: weiboCell *cell = [tableView

iOS开发-通过xib自定义cell-新闻项目

自定义Cell的两种方法1>通过xib来自定义cell (如果位置和宽高固定) 2>通过代码来自定义cell 第一种方法:通过xib来自定义cell(拖控件方便,但是2个重用标识要改为一样) 将控制器头文件中继承的UIViewController改为继承UITableViewController,则系统自动将UITableView的数据源和代理设置为控制器,并且已经遵守了协议,大概实现了数据源方法和代理方法,并且控制器View就是TableView,不存在View里面又有一个TableView

【iOS开发】TabelView自定义cell

自定义cell有两种方式: 第一种:通过创建xib文件. ①首先创建xib文件 ②创建xib文件对应 的模型A,名字与xib文件一样,并继承UITableViewCell类,并实现cellWithTableView的构造方法. ③在interface builder里更改xib文件默认的类,为第二步创建的模型类. ④创建数据模型B,并且A中包含数据模型B ⑤A通过懒加载B方法(就是重写B对象的setter方法)将控件赋值. 第二种:代码自定义cell ①新建一个继承UITableViewCell

iOS开发总结-UITableView 自定义cell和动态计算cell的高度

UITableView cell自定义头文件: shopCell.h #import <UIKit/UIKit.h> @interface shopCell : UITableViewCell @property (strong, nonatomic)  UIImageView *image;@property (strong, nonatomic)  UILabel *name;@property (strong, nonatomic)  UILabel *itemshop;@propert

IOS xib在tableview上的简单应用(通过xib自定义cell)

UITableView是一种常用的UI控件,在实际开发中,由于原生api的局限,自定义UITableViewCell十分重要,自定义cell可以通过代码,也可以通过xib. 这篇随笔介绍的是通过xib自定义cell. 首先通过gif介绍如何创建xib. 然后实现代码部分,要注意的是实现代码的同时要使代码与xib相关联.-如图 下面便是代码,一些解释我在代码中注释了. ViewController.m // // ViewController.m // CX-Xib在tableView中的简单应用

iOS开发UI篇—自定义瀑布流控件(cell的循环利用)

iOS开发UI篇—自定义瀑布流控件(cell的循环利用) 一.简单说明 当滚动的时候,向数据源要cell. 当UIScrollView滚动的时候会调用layoutSubviews在tableView中也是一样的,因此,可以用这个方法来监听scrollView的滚动,可以在在这个地方向数据源索要对应位置的cell(frame在屏幕上的cell). 示例: 当scrollView在屏幕上滚动的时候,离开屏幕的cell应该放到缓存池中去,询问即将(已经)进入到屏幕的cell,对于还没有进入到屏幕的ce

开发进阶18_通过xib自定义Cell

UITableViewController 继承自ViewController,TableViewController自动给我们添加了dataSource和delegate. 里面只有一个UITableView 1.UITableViewController内部默认会创建一个UITableView *tableView 2.UITableViewController内部tableView的delegate和dataSource就是这个UITableViewController 3.UITable

iOS UI基础-9.1 UITableView 团购

概述 接下来,我们要做的是团购界面的设计,最张要实现的效果图及项目结构图      团购数据的展示 思路: 系统自带的tableCell不能展示三个文本,不能满足条件,自定义tableCell 每一个tableCell样式固定不变,使用xib来实现. 数据来源通过加载plist文件 定义展示数据模型 Tuangou.h // // Tuangou.h // 9.1团购 // // Created by jiangys on 15/9/16. // Copyright (c) 2015年 uxia