iOS 代码自定义cell示例

底色标黄为代码自定义cell重点处,入手从这几点即可。

MyCell.h

#import <UIKit/UIKit.h>

@interface MyCell :UITableViewCell

@property(nonatomic,strong)UILabel *ageLabel;

@property(nonatomic,strong)UILabel *nameLabel;

@property(nonatomic,strong)UILabel *additionLabel;

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString
*)reuseIdentifier;

@end

MyCell.m

#import "MyCell.h"

@implementation MyCell

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString
*)reuseIdentifier

{

if (self = [superinitWithStyle:stylereuseIdentifier:reuseIdentifier])
{

//        for (UIView *view in self.contentView.subviews) {

//            NSLog(@"%@",view);

//            [view removeFromSuperview];

//        }

_ageLabel = [[UILabelalloc]init];

_nameLabel = [[UILabelalloc]init];

_additionLabel = [[UILabelalloc]init];

_additionLabel.text =@"点击";

[self.contentViewaddSubview:_ageLabel];

[self.contentViewaddSubview:_nameLabel];

[self.contentViewaddSubview:_additionLabel];

self.backgroundColor = [UIColorclearColor];

}

return self;

}

- (void)layoutSubviews

{

[superlayoutSubviews]; //如不调用父类此方法就会导致在使用时出现分隔线位置不正确,主要是因为父类中会调用其分隔线位置调整

self.nameLabel.frame
=CGRectMake(0,0,100,44);

self.ageLabel.frame
=CGRectMake(100,0,100,44);

self.additionLabel.frame
=CGRectMake(0,40,320,
20);

}

@end

控制器.m

#import "ViewController.h"

#import "ConcernViewController.h"

#import "MyCell.h"

@interface
ViewController ()<UITableViewDataSource,UITableViewDelegate,ConcernViewContorllDelegate>

@property(nonatomic,strong)UITableView *myTableView;

@property(nonatomic,strong)NSMutableArray *myData;

@end

@implementation ViewController

- (NSMutableArray *)myData

{

if (!_myData) {//如果想修改字典中的值,字典必须为可变字典不然就会出现问题

NSMutableDictionary *dict1 = [NSMutableDictionarydictionaryWithObjects:@[@"hua",@"12",@NO]forKeys:@[@"name",@"age",@"flag"]];

NSMutableDictionary *dict2 = [NSMutableDictionarydictionaryWithObjects:@[@"huhu",@"14",@NO]forKeys:@[@"name",@"age",@"flag"]];

NSMutableDictionary *dict3 = [NSMutableDictionarydictionaryWithObjects:@[@"huxun",@"16",@YES]forKeys:@[@"name",@"age",@"flag"]];

_myData = [NSMutableArray
arrayWithObjects:dict1,dict2,dict3, nil];

}

return_myData;

}

- (void)viewDidLoad {

[superviewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

CGFloat customW =self.view.bounds.size.width;

CGFloat customH =self.view.bounds.size.height;

UITableView *tableview = [[UITableView
alloc] initWithFrame:CGRectMake(10,44, customW -2 *10,
customH -80)style:UITableViewStylePlain];

tableview.delegate =self;

tableview.dataSource =self;

//    tableview.separatorStyle = UITableViewCellSeparatorStyleNone;

tableview.separatorColor = [UIColorblueColor];

tableview.separatorInset =UIEdgeInsetsMake(0,20,0,
20);

self.myTableView = tableview;

[self.viewaddSubview:self.myTableView];

}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

return 1;

}

/**

*  返回每组有多少行

*

*/

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

return
self.myData.count;

}

/**

*  返回cell

*

*/

- (MyCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath
*)indexPath

{

staticNSString *ID =
@"MyCell";

MyCell *cell = [tableViewdequeueReusableCellWithIdentifier:ID];
// cell的重用

if (cell ==nil) {

cell = [[MyCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:ID];

}

// cell值的初始化

return cell;

}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;

{

if ([self.myData[indexPath.row][@"flag"]boolValue]) {

return 44 +
30;

}

return 44;

}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

}

- (void)didReceiveMemoryWarning {

[superdidReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-26 08:42:24

iOS 代码自定义cell示例的相关文章

iOS开发UI篇—以微博界面为例使用纯代码自定义cell程序编码全过程(一)

iOS开发UI篇-以微博界面为例使用纯代码自定义cell程序编码全过程(一) 一.storyboard的处理 直接让控制器继承uitableview controller,然后在storyboard中把继承自uiviewcontroller的控制器干掉,重新拖一个tableview controller,和主控制器进行连线. 项目结构和plist文件 二.程序逻辑业务的处理 第一步,把配图和plist中拿到项目中,加载plist数据(非png的图片放到spooding files中) 第二步,字

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

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

通过代码自定义cell 新浪微博页面显示

通过代码自定义cell(cell的高度不一致)(如果高度一致的cell 用xib实现) 1.新建一个集成自UItableVIewCell的类 2.重写initWithStle :方法 1 - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 1>添加所有需要显示的子控件(不需要设置子控件的数据和Frame,子控件要添加到contentView中)

代码自定义cell练习-- QQ聊天

LWTViewController.h #import <UIKit/UIKit.h> @interface LWTViewController : UIViewController @end LWTViewController.m 1 // 2 // LWTViewController.m 3 // 代码自定义cell练习-- QQ聊天 4 // 5 // Created by apple on 14-5-30. 6 // Copyright (c) 2014年 lwt. All right

猫猫学IOS(十七)UI之纯代码自定义Cell实现新浪微博UI

猫猫分享,必须精品 素材代码地址:http://blog.csdn.net/u013357243/article/details/44976175 原文地址:http://blog.csdn.net/u013357243?viewmode=contents 先看效果图 编程思路 代码创建Cell的步骤 1> 创建自定义Cell,继承自UITableViewCell 2> 根据需求,确定控件,并定义属性 3> 用getter方法完成控件的实例化,只创建并添加到contentView,不处理

(素材源码)猫猫学IOS(十七)UI之纯代码自定义Cell实现新浪微博UI

猫猫分享,必须精品 素材代码地址:http://download.csdn.net/detail/u013357243/8580249 原文地址:http://blog.csdn.net/u013357243?viewmode=contents 先看效果图 编程思路 代码创建Cell的步骤 1> 创建自定义Cell,继承自UITableViewCell 2> 根据需求,确定控件,并定义属性 3> 用getter方法完成控件的实例化,只创建并添加到contentView,不处理位置 4&g

iOS 获取自定义cell上按钮所对应cell的indexPath.row的方法

在UITableView或UICollectionView的自定义cell中创建一button,在点击该按钮时知道该按钮所在的cell在UITableView或UICollectionView中的行数.就是cell的 indexPath.row,下面以UITableView为例: 有两种方法: -(IBAction):(id)sender { 1. 第一种方法,这个方便一点点,不用设置tag. NSLog(@"MyRow:%d",[self.table indexPathForCell

oc学习之路----通过代码自定义cell

需求背景:由于tableView中每一个cell的数据与布局都不一样,故不能用xib实现功能,这是用代码写自定义cell就有必要了. 步骤 1.新建一个继承自UITableViewCell的类 2.重写initWithStyle:reuseIdentifier:方法 Ø添加所有需要显示的子控件(不需要设置子控件的数据和frame,  子控件要添加到contentView中) Ø进行子控件一次性的属性设置(有些属性只需要设置一次, 比如字体\固定的图片) 3.提供2个模型 Ø数据模型: 存放文字数

iso 通过代码自定义cell (cell的高度不一致)

///-------1.1数据模型.h--------- #import <Foundation/Foundation.h> @interface MLStatus : NSObject @property(nonatomic, copy) NSString *text; @property(nonatomic, copy) NSString *icon; @property(nonatomic, copy) NSString *name; @property(nonatomic, copy)