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 ...
随机推荐
- 前端基础(JavaScript)2
3.2 Array对象 3.2.1 数组创建 创建数组的三种方式: 创建方式1: var arrname = [元素0,元素1,….]; // var arr=[1,2,3]; 创建方式2: var ...
- Integration Services 变量
如果没有变量,你会发现在ssis里面啥都干不成,和人没有灵魂一样 对系统变量唯一可配置的选项是指定变量在更改值时是否引发事件. 待续
- 结巴分词中TFIDF的原理
之前了解TFIDF只是基于公式,今天被阿里面试官问住了,所以深入讨论下TFIDF在结巴分词中原理. 概念 TF-IDF(term frequency–inverse document frequenc ...
- python socket编程 实现简单p2p聊天程序
目标是写一个python的p2p聊天的项目,这里先说一下python socket的基础课程 一.Python Socket 基础课程 Socket就是套接字,作为BSD UNIX的进程通信机制,取后 ...
- 项目中使用protobuf 3.0
protocol buffer从3.0 原生的compiler支持c++,Java,Python,Go,Ruby,JavaNano,JavaScript,Objective-C,C#,PHP这篇文章作 ...
- git clone时,提示warning: remote HEAD refers to nonexistent ref, unable to checkout
一.环境 发行版:Ubuntu 18.04.1 LTS 代号:bionic 内核版本:4.15.0-30-generic 二.背景 git clone https://source.codeauror ...
- CentOS7.2 安装Redis3.2.8
Redis3.2.8 下载 下载Redis3.2.8.tar.gz 将文件放置在usr/local/redis/中 解压文件 安装: make && make install [roo ...
- POJ 3660 Cow ContestCow(Floyd传递闭包)题解
题意:给出m个关系,问你能确定机头牛的排名 思路:要确定排名那必须要把他和其他n-1头牛比过才行,所以Floyd传递闭包,如果赢的+输的有n-1就能确定排名. 代码: #include<cstd ...
- 比较两个JSON字符串是否完全相等
RT,比较两个JSON字符串是否完全相等,这里使用google贡献的Gson. 一,no POJO,即不另外创建一个简单Java类 [java] view plain copy String str1 ...
- Spring Cloud 开发的一些推荐规划
1.提供一个统一的 父 pom 依赖 作用:统一版本与引入必要依赖 2.提供一个模板模型. 作用: 开发人员不必关系具体基础启动项 3.提供一个统一基础配置模型 作用: 开发人员不比太过关注与必 ...