IOS中UITableViewCell使用详解
IOS中UITableViewCell使用详解
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier;
Cell的初始化方法,可以设置一个风格和标识符,风格的枚举如下:
? typedef NS_ENUM(NSInteger, UITableViewCellStyle) {
UITableViewCellStyleDefault, // 默认风格,自带标题和一个图片视图,图片在左
UITableViewCellStyleValue1, // 只有标题和副标题 副标题在右边
UITableViewCellStyleValue2, // 只有标题和副标题,副标题在左边标题的下边
UITableViewCellStyleSubtitle // 自带图片视图和主副标题,主副标题都在左边,副标题在下
}; @property (nonatomic, readonly, retain) UIImageView *imageView;
图片视图,风格允许时才会创建
@property (nonatomic, readonly, retain) UILabel *textLabel;
标题标签 @property (nonatomic, readonly, retain) UILabel *detailTextLabel;
副标题标签 @property (nonatomic, readonly, retain) UIView *contentView;
容纳视图,任何cell的子视图都应该添加在这个上面 @property (nonatomic, retain) UIView *backgroundView;
背景视图 @property (nonatomic, retain) UIView *selectedBackgroundView;
选中状态下的背景视图 @property (nonatomic, retain) UIView *multipleSelectionBackgroundView;
多选选中时的背景视图 @property (nonatomic, readonly, copy) NSString *reuseIdentifier;
cell的标识符 - (void)prepareForReuse;
当被重用的cell将要显示时,会调用这个方法,这个方法最大的用武之地是当你自定义的cell上面有图片时,如果产生了重用,图片可能会错乱(当图片来自异步下载时及其明显),这时我们可以重写这个方法把内容抹掉。 @property (nonatomic) UITableViewCellSelectionStyle selectionStyle;
cell被选中时的风格,枚举如下:
? typedef NS_ENUM(NSInteger, UITableViewCellSelectionStyle) {
UITableViewCellSelectionStyleNone,//无
UITableViewCellSelectionStyleBlue,//蓝色
UITableViewCellSelectionStyleGray,//灰色
UITableViewCellSelectionStyleDefault//默认 为蓝色
}; @property (nonatomic, getter=isSelected) BOOL selected;
设置cell是否选中状态 @property (nonatomic, getter=isHighlighted) BOOL highlighted;
设置cell是否高亮状态 - (void)setSelected:(BOOL)selected animated:(BOOL)animated;
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated;
与上面的两个属性对应 @property (nonatomic, readonly) UITableViewCellEditingStyle editingStyle;
获取cell的编辑状态,枚举如下
? typedef NS_ENUM(NSInteger, UITableViewCellEditingStyle) {
UITableViewCellEditingStyleNone,//无编辑
UITableViewCellEditingStyleDelete,//删除编辑
UITableViewCellEditingStyleInsert//插入编辑
}; @property (nonatomic) BOOL showsReorderControl;
设置是否显示cell自带的自动排序控件
注意:要让cell实现拖动排序的功能,除了上面设置为YES,还需实现代理中的如下方法: -(BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath{
return YES;
}
-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath{ } @property (nonatomic) BOOL shouldIndentWhileEditing;
设置编辑状态下是否显示缩进 @property (nonatomic) UITableViewCellAccessoryType accessoryType;
设置附件视图的风格(cell最右侧显示的视图) 枚举如下:
? typedef NS_ENUM(NSInteger, UITableViewCellAccessoryType) {
UITableViewCellAccessoryNone, // 没有视图
UITableViewCellAccessoryDisclosureIndicator, // cell右侧显示一个灰色箭头
UITableViewCellAccessoryDetailDisclosureButton, // 显示详情符号和灰色箭头
UITableViewCellAccessoryCheckmark, // cell右侧显示蓝色对号
UITableViewCellAccessoryDetailButton // cell右侧显示一个详情符号
}; @property (nonatomic, retain) UIView *accessoryView;
附件视图 @property (nonatomic) UITableViewCellAccessoryType editingAccessoryType;
cell编辑时的附件视图风格 @property (nonatomic, retain) UIView *editingAccessoryView;
cell编辑时的附件视图 @property (nonatomic) NSInteger indentationLevel;
设置内容区域的缩进级别 @property (nonatomic) CGFloat indentationWidth;
设置每个级别的缩进宽度 @property (nonatomic) UIEdgeInsets separatorInset;
设置分割线的偏移量 @property (nonatomic, getter=isEditing) BOOL editing;
- (void)setEditing:(BOOL)editing animated:(BOOL)animated;
设置是否编辑状态 @property(nonatomic, readonly) BOOL showingDeleteConfirmation;
返回是否目前正在显示删除按钮 - (void)willTransitionToState:(UITableViewCellStateMask)state;
cell状态将要转换时调用的函数,可以在子类中重写
- (void)didTransitionToState:(UITableViewCellStateMask)state;
cell状态已经转换时调用的函数,可以在子类中重写,状态枚举如下:
? typedef NS_OPTIONS(NSUInteger, UITableViewCellStateMask) {
UITableViewCellStateDefaultMask = ,//默认状态
UITableViewCellStateShowingEditControlMask = << ,//编辑状态
UITableViewCellStateShowingDeleteConfirmationMask = << //确认删除状态
}; 注意:下面这些方法已经全部在IOS3.0后被废弃了,虽然还有效果,但是会被警告 @property (nonatomic, copy) NSString *text;
设置标题 @property (nonatomic, retain) UIFont *font;
设置字体 @property (nonatomic) NSTextAlignment textAlignment;
设置对其模式 @property (nonatomic) NSLineBreakMode lineBreakMode;
设置断行模式 @property (nonatomic, retain) UIColor *textColor;
设置字体颜色 @property (nonatomic, retain) UIColor *selectedTextColor;
设置选中状态下的字体颜色 @property (nonatomic, retain) UIImage *image;
设置图片 @property (nonatomic, retain) UIImage *selectedImage;
设置选中状态时的图片 @property (nonatomic) BOOL hidesAccessoryWhenEditing;
设置编辑的时候是否隐藏附件视图
IOS中UITableViewCell使用详解的更多相关文章
- iOS中—触摸事件详解及使用
iOS中--触摸事件详解及使用 (一)初识 要想学好触摸事件,这第一部分的基础理论是必须要学会的,希望大家可以耐心看完. 1.基本概念: 触摸事件 是iOS事件中的一种事件类型,在iOS中按照事件划分 ...
- iOS中RSA加密详解
先贴出代码的地址,做个说明,因为RSA加密在iOS的代码比较少,网上开源的也很少,最多的才8个星星.使用过程中发现有错误.然后我做了修正,和另一个库进行了整合,然后将其支持CocoaPod. http ...
- 在IOS中 NSRange类详解
NSRange的定义 typedef struct _NSRange { NSUInteger location; NSUInteger length; } NSRange; NSRange是一个结构 ...
- iOS中 支付宝钱包详解/第三方支付 韩俊强的博客
每日更新关注:http://weibo.com/hanjunqiang 新浪微博! iOS开发者交流QQ群: 446310206 一.在app中成功完成支付宝支付的过程 1.申请支付宝钱包.参考网址 ...
- iOS中 断点下载详解 韩俊强的博客
布局如下: 基本拖拉属性: #import "ViewController.h" #import "AFNetworking.h" @interface Vie ...
- iOS中 百度地图详解 韩俊强的博文
需要准备工作按照下图引进类库 需要添加 添加的两个字符串为:NSLocationWhenInUseUsageDescription / NSLocationAlwaysUsageDescripti ...
- IOS中的手势详解
1.点击 UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selecto ...
- iOS 单元测试之XCTest详解(一)
iOS 单元测试之XCTest详解(一) http://blog.csdn.net/hello_hwc/article/details/46671053 原创blog,转载请注明出处 blog.csd ...
- iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem
http://blog.csdn.net/totogo2010/article/details/7681879 1.UINavigationController导航控制器如何使用 UINavigati ...
随机推荐
- c/c++ json使用
比如出名的有CJson,c++一般用jsoncpp http://sourceforge.net/projects/jsoncpp/ jsoncpp:http://www.cnblogs.com/fe ...
- C语言——stdio.h
int fgetc(FILE * stream); get character from stream 返回流中的一个字符,并以int的类型返回,如果碰到文件的结尾,或者一个错误发生,函数返回 ...
- oauth2(转载http://www.rollosay.com/it/%E4%BD%BF%E7%94%A8OAuth-Server-PHP%E5%AE%9E%E7%8E%B0OAuth2%E6%9C%8D%E5%8A%A1)
http://www.rollosay.com/it/%E4%BD%BF%E7%94%A8OAuth-Server-PHP%E5%AE%9E%E7%8E%B0OAuth2%E6%9C%8D%E5%8A ...
- spring AOP的两种代理
本篇记录下spring AOP的两种代理,为下一篇AOP实现做下铺垫. 1.JDK动态代理 2.cglib代理 1.如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP2.如果目标对象 ...
- nginx重启 failed (98: Address already in use)
启动nginx服务,无法正常启动,一查log日志,发现如题错误信息. 问题描述:地址已被使用.可能nginx服务卡死了,导致端口占用,出现此错误. 查看端口 netstat -ntpl 杀掉进程 ...
- FMS4
先要打开服务器你在本机装的fms,本机就是服务器了!记得现在你的机器既是客户端又是服务端开始===程序===Macromedia===Flash Media Server 2有两个start****, ...
- RESTful源码学习笔记之RPC和 RESTful 什么区别
REST,即Representational State Transfer的缩写.翻译过来是表现层状态转换.如果一个架构符合REST原则,就称它为RESTful架构.啥叫json-rpc?接口调用通常 ...
- 20145204《Java程序设计》第5周学习总结
20145204<Java程序设计>第5周学习总结 教材学习内容总结 语法与继承构架 我们之前接触到的C通常都是将程序流程和错误处理混在一起,在编写程序的时候必须考虑可能出现的错误并提前做 ...
- 20145221 《Java程序设计》第十周学习总结
20145221 <Java程序设计>第十周学习总结 网络编程 网络概述 概述 网络编程技术是当前一种主流的编程技术,随着联网趋势的逐步增强以及网络应用程序的大量出现,所以在实际的开发中网 ...
- eclipse 项目svn忽略不需要提交的文件
1.eclipse选择window–>Prenference 2.选择Team–> Git下面的Ignoreed Resources –>Add Pattern –>一个一个的 ...