iOS中自定义UITableViewCell的用法
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的用法的更多相关文章
- ios中自定义tableView,CollectionView的cell什么时候用nib加载,什么时候用标识重用
做了一段时间的iOS,在菜鸟的路上还有很长的路要走,把遇到的问题记下来,好记性不如烂笔头. 在项目开发中大家经常会用到tableView和collectionView两个控件,然而在cell的自定义上 ...
- iOS中 自定义cell分割线/分割线偏移 韩俊强的博客
在项目开发中我们会常常遇到tableView 的cell分割线显示不全,左边会空出一截像素,更有甚者想改变系统的分割线,并且只要上下分割线的一个等等需求,今天重点解决以上需求,仅供参考: 每日更新关注 ...
- ios中自定义checkbox
//自定义button#import <UIKit/UIKit.h> @interface CKButton : UIButton @end #import "CKButton. ...
- ios中自定义cell 设置cell的分组结构
ios系统默认的cell并不能满足我们的需求 这个时候就需要自定义我们的cell 自定义cell为分组的时候 需要设置分组样式 以下是我常用分组的二种方法: 第一是 在自定义的UITableView ...
- iOS中 自定义cell升级版 (高级)
接上次分享的自定义cell进行了优化:http://blog.csdn.net/qq_31810357/article/details/49611255 指定根视图: self.window.root ...
- ios中自定义图层的2种方法
1:自定义图层,在图层中画图 #import <QuartzCore/QuartzCore.h> @interface MJLayer : CALayer @end #import &qu ...
- ios中自定义图层
图层和VIEW的区别 1:view不具备显示功能,是因view内部有一个图层,才能显示出来 2:图层不具备事件功能,VIEW继承UIRespone具有处理事件功能 3:自定义的图层有一个影式动画,VI ...
- ios中webview的高级用法(二)
框架: webview与js的通信框架 #import "MJViewController.h" #import "MBProgressHUD+Add.h" ...
- ios中陀螺仪CoreMotion的用法
转自:http://code.eoe.cn/471/title/ios涓檧铻轰华CoreMotion鐨勭敤娉 README.md 外部引用 原始文档 以前在iphone中要得到加速度时,只能使用Ac ...
随机推荐
- Codeforces Round #422 (Div. 2) A. I'm bored with life 暴力
A. I'm bored with life Holidays have finished. Thanks to the help of the hacker Leha, Noora mana ...
- jquery 选择器(selector)和事件(events)
页面加载完成后开始运行do stuff when DOM is ready 中的语句! $(document).ready(function() { // do stuff when DO ...
- 传统maven项目创建
转自:https://blog.csdn.net/wangfengtong/article/details/77098238 需求表均同springmvc案例 此处只是使用maven 注意,以下所有需 ...
- bzoj3727: PA2014 Final Zadanie
我真是SB之神呢这么SB的题都不会 肯定是先无脑正向思考,罗列下关系式: b[1]=∑a[i]*dep[i]=∑tot[i] (i!=1) b[i]=b[fa]-tot[i]+(tot[1]-tot[ ...
- SDUT OJ 1598 周游列国
周游列国 Time Limit: 1000ms Memory limit: 32768K 有疑问?点这里^_^ 题目描述 大家都知道孔子吧,春秋战国时候的一个老头儿.当时出国还不用护照,所以他经 ...
- 缓存框架Ehcache相关
单点缓存框架 只能针对单个jvm中,缓存容器存放jvm中,每个缓存互不影响 Ehcache gauva chache 内置缓存框架 jvm缓存框架 分布式缓存框架(共享缓存数据) Redis ...
- SpringBoot使用logback日志记录
在resources里的配置文件: logback-spring.xml <?xml version="1.0" encoding="UTF-8" ?&g ...
- [Selenium] 使用自定义的FirefoxProfile
FirefoxProfile 用于定制待测试的Firefox 浏览器的特定属性,其中包括所存储的密码.书签.历史信息.Cookies等.某些测试用例需要用到特定的用户信息,因此可通过定制当前Firef ...
- Autolayout UIScrollView
http://www.cocoachina.com/ios/20141011/9871.html Xcode6中如何对scrollview进行自动布局(autolayout) Xcode6中极大的 ...
- Spring 3.1新特性之一:使用Spring Profile和Mybatis进行多个数据源(H2和Mysql)的切换
最近在做WebMagic的后台,遇到一个问题:后台用到了数据库,本来理想情况下是用Mysql,但是为了做到开箱即用,也整合了一个嵌入式 数据库H2.这里面就有个问题了,如何用一套代码,提供对Mysql ...