1、先创建一个View继承 UITableViewCell并使用xib快速建立模型。

#import <UIKit/UIKit.h>
#import "Score.h" @interface ShowScoreCell : UITableViewCell
//在.h文件中声明对象
@property(nonatomic,strong)Score *score;
@end

2、把需要的控件拖上xib并调整xib的大小

3、把对应控件连线至.m文件中

#import "ShowScoreCell.h"

@interface ShowScoreCell()

//以下属性都有连线
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) IBOutlet UILabel *positionLabel; @property (weak, nonatomic) IBOutlet UILabel *paperLabel;
@property (weak, nonatomic) IBOutlet UILabel *scoreLabel;
@property (weak, nonatomic) IBOutlet UIView *view; @end

4、在调用实体的set方法时,给面面中需要的控件赋值

- (void)setScore:(Score *)score{
_score = score;
self.nameLabel.text = score.name;
self.positionLabel.text = score.position;
self.paperLabel.text = score.paper;
self.scoreLabel.text = score.score;
}

5、根据需要重写每个控件

//重写
-(void)layoutSubviews
{
[super layoutSubviews]; if (self.selected)
{
//可以单独设置每一个Label选中时的背景
// self.nameLabel.backgroundColor = [UIColor redColor];
// self.positionLabel.backgroundColor = [UIColor redColor];
// self.paperLabel.backgroundColor = [UIColor redColor];
// self.scoreLabel.backgroundColor = [UIColor lightGrayColor];
//也可以直接设置用来放Label的View的背景
self.view.backgroundColor = [UIColor redColor]; } }

6、在视图控制器中做以下工作

1> 拿到实体对象的数据,一般用懒加载的形式存在数组中。

- (NSArray *)allScores{
if (!_allScores) {
_allScores = [[DBManager shareManager] allScore];
}
return _allScores;
}

2>在viewDidLoad方法中注册自定义的Cell

- (void)viewDidLoad {
[super viewDidLoad]; [self.navigationController setNavigationBarHidden:NO];
self.navigationItem.title = @"查看成绩";
//nibWithNibName:自定义Cell的名字
[self.tableView registerNib:[UINib nibWithNibName:@"ShowScoreCell" bundle:nil] forCellReuseIdentifier:cellIdentifier];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"编辑" style:UIBarButtonItemStyleDone target:self action:@selector(beginEditing:)];
}

提前声明一个cellIdentifier,在@implementation之前

static NSString *cellIdentifier = @"scoreCell";

3>在返回每个单元格时使用自定义的Cell样式

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    ShowScoreCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
// if (!cell) {
// cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
// }
//设计cell
Score *s = self.allScores[indexPath.row];
cell.score = s; return cell;
}

iOS中自定义UITableViewCell的用法的更多相关文章

  1. ios中自定义tableView,CollectionView的cell什么时候用nib加载,什么时候用标识重用

    做了一段时间的iOS,在菜鸟的路上还有很长的路要走,把遇到的问题记下来,好记性不如烂笔头. 在项目开发中大家经常会用到tableView和collectionView两个控件,然而在cell的自定义上 ...

  2. iOS中 自定义cell分割线/分割线偏移 韩俊强的博客

    在项目开发中我们会常常遇到tableView 的cell分割线显示不全,左边会空出一截像素,更有甚者想改变系统的分割线,并且只要上下分割线的一个等等需求,今天重点解决以上需求,仅供参考: 每日更新关注 ...

  3. ios中自定义checkbox

    //自定义button#import <UIKit/UIKit.h> @interface CKButton : UIButton @end #import "CKButton. ...

  4. ios中自定义cell 设置cell的分组结构

    ios系统默认的cell并不能满足我们的需求 这个时候就需要自定义我们的cell 自定义cell为分组的时候 需要设置分组样式  以下是我常用分组的二种方法: 第一是 在自定义的UITableView ...

  5. iOS中 自定义cell升级版 (高级)

    接上次分享的自定义cell进行了优化:http://blog.csdn.net/qq_31810357/article/details/49611255 指定根视图: self.window.root ...

  6. ios中自定义图层的2种方法

    1:自定义图层,在图层中画图 #import <QuartzCore/QuartzCore.h> @interface MJLayer : CALayer @end #import &qu ...

  7. ios中自定义图层

    图层和VIEW的区别 1:view不具备显示功能,是因view内部有一个图层,才能显示出来 2:图层不具备事件功能,VIEW继承UIRespone具有处理事件功能 3:自定义的图层有一个影式动画,VI ...

  8. ios中webview的高级用法(二)

     框架: webview与js的通信框架 #import "MJViewController.h" #import "MBProgressHUD+Add.h" ...

  9. ios中陀螺仪CoreMotion的用法

    转自:http://code.eoe.cn/471/title/ios涓檧铻轰华CoreMotion鐨勭敤娉 README.md 外部引用 原始文档 以前在iphone中要得到加速度时,只能使用Ac ...

随机推荐

  1. 使用TASM编译COFF格式和连接

    看到网络上流传的一份Drocon的mercury的代码程序源码使用TASM32编译使用MASM32来连接...关键的地方就在这里为什么要使用TASM编译...正常情况下TASM连接出来的程序代码体积远 ...

  2. extjs4.0 treepanel节点的选中、展开! 数据的重新加载

    1.extjs4.0API较3.0有非常大变化2.多级子父节点的选中和展开.3.数据的重新加载.tree.getStore().load4.节点的移除,从树中根据ID获取节点 tree.getStor ...

  3. 主线程 view

    参考https://blog.csdn.net/u011001142/article/details/50912358

  4. ap和路由器有什么区别 ap和路由器的区别介绍【图文】

    现在能够摆脱网线限制能够自由方便上网的WiFi和无线网络也来越流行,很多酒店.饭店.宾馆.办公楼等地方都会提供无线网络.而能够提供无线网络的设备有很多,现在我们介绍的是无线ap和无线路由器.那么,ap ...

  5. leelazero and google colab

    https://github.com/gcp/leela-zero/blob/master/COLAB.md 左侧菜单展开,可以查看细节

  6. 计算机学院大学生程序设计竞赛(2015’12)Bitwise Equations

    Bitwise Equations Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  7. codeforces 451C. Predict Outcome of the Game 解题报告

    题目链接:http://codeforces.com/problemset/problem/451/C 题目意思:有3支球队(假设编号为1.2.3),总共要打 n 场比赛,已知已经错过这n场比赛中的 ...

  8. topcoder 的一些输入输出格式

    自从上年的11月份参加过TC的比赛后,就再也没有参加了,因为它的输入输出格式比较难接受,还有它的页面字体比较小,看得我很辛苦...藉口藉口--懒而已!不过以后我会尽量去参加的,为了提高自己的编程能力. ...

  9. WebStorm配置SVN

    下载SVN客户端管理工具TortoiseSVN-1.8.5.25224-x64-svn-1.8.8,选择合适的Windows版本 配置项目目录,对应的VCS为Subversion 设置Subversi ...

  10. 【AHOI2009】中国象棋

    [题目链接] 点击打开链接 [算法] 动态规划 f[i][j][k]表示前i行,有j列放了1个,有k列放了两个 分六种情况讨论即可 [代码] #include<bits/stdc++.h> ...