详解ios中自定义cell,自定义UITableViewCell

通过继承UITableViewCell来自定义cell

1、创建一个空的项目、命名:

2、创建一个UITableViewController 并且同时创建xib:

3、设置AppDelegate.m中window的根控制器为刚刚创建的TableViewController:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
  TableViewController *tableViewController = [[[TableViewController alloc] init] autorelease]; //自动释放
  //设置根控制器
  self.window.rootViewController = tableViewController;
  [self.window makeKeyAndVisible];
  return YES;
} 

4、创建自定义的UITableViewCell:

5、创建自定义cell的xib 拖放需要的控件
选择User Interface。

创建空的xib。

拖入Cell控件。

完成自定义的cell控件。

设置cell控件的Identfier。

绑定Cell类并且将控件的输出口关联到TableViewCell.h文件中。

6、对TableViewController类编码,在委托方法中设置自定义的Cell:

#import "TableViewController.h"
#import "TableViewCell.h" 

@interface TableViewController (){
  NSMutableArray *tableData; //表格数据
} 

@end 

@implementation TableViewController 

- (id)initWithStyle:(UITableViewStyle)style
{
  self = [super initWithStyle:style];
  if (self) {
    // Custom initialization
  }
  return self;
} 

- (void)viewDidLoad
{
  [super viewDidLoad];
  //初始化表格数据
  tableData = [[NSMutableArray alloc] init];
  for (int i = 0; i< 10; i++) {
    [tableData addObject:[NSString stringWithFormat:@"MyCellDemon%i",i]];
  } 

  //设置row的高度为自定义cell的高度
  self.tableView.rowHeight = 90; 

} 

- (void)didReceiveMemoryWarning
{
  [super didReceiveMemoryWarning];
 } 

#pragma mark - Table view data source 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
#warning Potentially incomplete method implementation.
   return 1;
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
#warning Incomplete method implementation.
   return [tableData count];
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
  //指定cellIdentifier为自定义的cell
  static NSString *CellIdentifier = @"TableViewCell";
  //自定义cell类
  TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  if (cell == nil) {
    //通过xib的名称加载自定义的cell
    cell = [[[NSBundle mainBundle] loadNibNamed:@"TableViewCell" owner:self options:nil] lastObject];
  } 

  //添加测试数据
  cell.titleLabel.text = [tableData objectAtIndex:indexPath.row];
  cell.content.text = @"这是一些测试数据";
  //测试图片
  cell.iamge.image = [UIImage imageNamed:@"testImage.jpg"];
   return cell;
} 

#pragma mark - Table view delegate 

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

} 

@end

最终效果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2016-12-19

iOS App开发中使用及自定义UITableViewCell的教程

UITableView用来以表格的形式显示数据.关于UITableView,我们应该注意: (1)UITableView用来显示表格的可见部分,UITableViewCell用来显示表格的一行. (2)UITableView并不负责存储表格中的数据,而是仅仅存储足够的数据使得可以画出当前可见部分. (3)UITableView从UITableViewDelegate协议获取配置信息,从UITableViewDataSource协议获得数据信息. (4)所有的UITableView实现时实际上只有

UITableViewCell在编辑状态下背景颜色的修改方法

本文主要介绍的是关于UITableViewCell在编辑状态下背景颜色的修改方法,分享出来供大家参考学习,下面来一起看看详细的介绍: 一.先看下效果图 二.网上很多下面这种答案 UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath]; cell.selectionStyle = UITableViewCellSelectionStyleNone; 这样设置,蓝色的选中图标也不会出现. 这种仅限于不编辑的时候,让Ta

详解IOS UITableViewCell 的 imageView大小更改

详解IOS UITableViewCell 的 imageView大小更改 实例代码: - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCell

IOS UITableViewCell详解及按钮点击事件处理实例

IOS UITableViewCell详解及按钮点击事件处理 今天突然做项目的时候,又遇到处理自定义的UITableViewCell上按钮的点击事件问题.我知道有两种方式,可是突然想不起来之前是怎么做的了,好记性不如烂笔头,还是记录一下吧. 1.第一种方式给Button加上tag值 这里分为两种:一种是直接在原生的UITableViewCell上添加UIButton按钮,然后给UIButton设置tag值,然后在控制器里的方法里通过取数据,做界面跳转等.还是举个例子吧,省的回忆半天. - (UI

iOS中使用UItableviewcell实现团购和微博界面的示例

使用xib自定义UItableviewcell实现一个简单的团购应用界面布局 一.项目文件结构和plist文件 二.实现效果 三.代码示例 1.没有使用配套的类,而是直接使用xib文件控件tag值操作 数据模型部分: YYtg.h文件 复制代码 代码如下: // //  YYtg.h //  01-团购数据显示(没有配套的类) // //  Created by apple on 14-5-29. //  Copyright (c) 2014年 itcase. All rights reserv

IOS UITableView和UITableViewCell的几种样式详细介绍

IOS UITableView和UITableViewCell的几种样式详细介绍 今天要分享的是IOS开发中一个使用率非常高的一个控件-------UITableView,这两天正在使用tableview做信息的显示,在写代码时对tableview和tableviewcell的几种样式一直分不清楚,今天我详细的研究了一下,下面就跟大家分享一下: 一.系统自己的UITableView样式有两种: 1.UITableViewStylePlain: Plain样式的是方形的,充满你给的view.fra

全面解析iOS应用中自定义UITableViewCell的方法

有时候我们需要自己定义UITableViewCell的风格,其实就是向行中添加子视图.添加子视图的方法主要有两种:使用代码以及从.xib文件加载.当然后一种方法比较直观. 一.基本用法 我们这次要自定义一个Cell,使得它像QQ好友列表的一行一样:左边是一张图片,图片的右边是三行标签: 当然,我们不会搞得这么复杂,只是有点意思就行. 1.运行Xcode 4.2,新建一个Single View Application,名称为Custom Cell: 2.将图片资源导入到工程.为此,我找了14张50

jquery遍历标签中自定义的属性方法

在开发中我们有时会对html标签添加属性,如何遍历处理? <ul> <li name="li1" sortid="nav_1">aaaaaaa</li> <li name="li1" sortid="nav_2">bbbbbbb</li> <li name="li1" sortid="nav_3">cccccccc&

iOS开发之自定义UITextField的方法

UITextField是IOS开发中用户交互中重要的一个控件,常被用来做账号密码框,输入信息框等. 观察效果图 UITextField有以下几种特点: 1.默认占位文字是灰色的 2.当光标点上去时,占位文字变为白色 3.光标是白色的 接下来我们通过不同的方法来解决问题 一.将xib中的UITextField与代码关联 通过NSAttributeString方法来更改占位文字的属性 (void)viewDidLoad { [super viewDidLoad]; // Do any additio

在logback.xml中自定义动态属性的方法

当使用logback来记录Web应用的日志时,我们通过在logback.xml中配置appender来指定日志输出格式及输出文件路径,这在一台主机或一个文件系统上部署单个实例没有问题,但是如果部署多个实例(比如通过容器的方式),多个实例同时往同一文件写日志可能就会引起问题.这时可以将每个实例的日志文件加以区分,如IP或UUID,或两者结合的形式.这其实就涉及如何在logback.xml中自定义动态属性的问题. 可以有4种方式来实现logback.xml中获取自定义变量值: 通过设置环境变量或传递

Swift使用WKWebView在iOS应用中调用Web的方法详解

自从iOS8开始,Apple引入了WKWebView欲代替UIWebView.相比而言,WKWebView消耗内从更少,功能也更加强大.让我们来看看WKWebView怎么使用吧! 0.初始化 (1)首先需要引入WebKit库 复制代码 代码如下: #import <WebKit/WebKit.h> (2)初始化方法分为以下两种 复制代码 代码如下: // 默认初始化 - (instancetype)initWithFrame:(CGRect)frame; // 根据对webview的相关配置,

实例解析iOS开发中系统音效以及自定义音效的应用

一.访问声音服务 添加框架AudioToolBox以及要播放的声音文件,另外还需要在实现声音服务的类中导入该框架的接口文件: #import <AudioToolbox/AudioToolbox.h> 播放系统声音,需要两个函数是AudioServicesCreateSystemSoundID和AudioServicesPlaySystemSound,还需要声明一个类型为SystemSoundID类型的变量,它表示要使用的声音文件. 复制代码 代码如下: -(IBAction) playSys

详解在iOS App中自定义和隐藏状态栏的方法

自定义状态栏 有时候,需要在状态栏上显示一些自定义信息,比如新浪微博的官方iOS客户端:告知用户信息处于发送队列.发送成功或者发送失败. 如上图,通过在状态栏显示自定义信息,可以给用户友好又不影响软件使用的提示. 为此,我们显得定义一个自定义状态栏类,包含一个显示信息的Label: 复制代码 代码如下: @interface CustomStatusBar : UIWindow  {      UILabel *_messageLabel;  }    - (void)showStatusMes

解析iOS开发中的FirstResponder第一响应对象

1. UIResonder 对于C#里所有的控件(例如TextBox),都继承于Control类.而Control类的继承关系如 下: 复制代码 代码如下: System.Object System.MarshalByRefObject System.ComponentModel.Component System.Windows.Forms.Control 对于iOS里的UI类,也有类似的继承关系. 例如对于UITextField,继承于UIControl:UIControl继承于UIView,

详解iOS应用中自定义UIBarButtonItem导航按钮的创建方法

iOS系统导航栏中有leftBarButtonItem和rightBarButtonItem,我们可以根据自己的需求来自定义这两个UIBarButtonItem. 四种创建方法 系统提供了四种创建的方法: 复制代码 代码如下: - (instancetype)initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem target:(id)target action:(SEL)action; - (instancetype)init

如何在Spring中自定义scope的方法示例

大家对于 Spring 的 scope 应该都不会默认.所谓 scope,字面理解就是"作用域"."范围",如果一个 bean 的 scope 配置为 singleton,则从容器中获取 bean 返回的对象都是相同的:如果 scope 配置为prototype,则每次返回的对象都不同. 一般情况下,Spring 提供的 scope 都能满足日常应用的场景.但如果你的需求极其特殊,则本文所介绍自定义 scope 合适你. Spring 内置的 scope 默认时,所