UITableViewCell类学习

原创 2015年07月08日 19:38:21

Figure 5-1  Parts of a table view cell


 

 

Figure 5-2  Parts of a table-view cell in editing mode


 

 

Figure 5-3  Default cell content in a UITableViewCell object


 

源文档 <https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/TableViewCells/TableViewCells.html#//apple_ref/doc/uid/TP40007451-CH7>

 

如上是一个table view cell的组成视图(第二张是编辑状态下的)。

如下是参看iOS源文档整理的UITableViewCell类的属性及方法。

 

  1. - (instancetype)initWithStyle:(UITableViewCellStyle)style  reuseIdentifier:(NSString *)reuseIdentifier

Initializes a table cell with a style and a reuse identifier and returns it to the caller.

使用指定的风格和重用ID初始化一个table cell

该方法会在tableView调用dequeueReusableCellWithIdentifier:时被调用

 

typedef enum : NSInteger {

   UITableViewCellStyleDefault,

   UITableViewCellStyleValue1,

   UITableViewCellStyleValue2,

   UITableViewCellStyleSubtitle

} UITableViewCellStyle;

 

 

  1. @property(nonatomic, readonly, copy) NSString *reuseIdentifier

A string used to identify a cell that is reusable. (read-only)

标记一个可复用的cell字符串,只读

 

  1. - (void)prepareForReuse

Prepares a reusable cell for reuse by the table view'€™s delegate.

table view的委托准备一个可复用的cell

该方法会在tableView调用dequeueReusableCellWithIdentifier:方法时在返回cell前被调用,该方法仅可以修改除内容外的cell的属性,如透明度、编辑或选中时的状态等,其他与内容相关的(图片、文本框等)在委托方法

 tableView:cellForRowAtIndexPath:中修改

 

  1. @property(nonatomic, readonly, retain) UILabel *textLabel

Returns the label used for the main textual content of the table cell. (read-only)

返回cell内容的主要文本框的文本对象,对象

 

  1. @property(nonatomic, readonly, retain) UILabel *detailTextLabel

Returns the secondary label of the table cell if one exists. (read-only)

返回cell的第二部分文本对象,只读

cell风格为UITableViewCellStyleDefault时该属性可忽略

 

  1. @property(nonatomic, readonly, retain) UIImageView *imageView

Returns the image view of the table cell. (read-only)

返回cell的图片视图,只读

 

  1. @property(nonatomic, readonly, retain) UIView *contentView

Returns the content view of the cell object. (read-only)

返回cell的内容视图,只读

该视图是其他自定义视图的容器,可通过addSubView方法来嵌入自定义视图

 

  1. @property(nonatomic, retain) UIView *backgroundView

The view used as the background of the cell.

cell的背景视图

 

  1. @property(nonatomic, retain) UIView *selectedBackgroundView

The view used as the background of the cell when it is selected.

cell被选中时的背景视图

 

  1. @property(nonatomic, retain) UIView *multipleSelectionBackgroundView

The background view to use for a selected cell when the table view allows multiple row selections.

多行cell被选中时的背景视图

可通过tableView对象的 allowsMultipleSelection属性和allowsMultipleSelectionDuringEditing 属性来使能多行选则

 

  1. @property(nonatomic) UITableViewCellAccessoryType accessoryType

The type of standard accessory view the cell should use (normal state).

标准附加视图风格

accessoryView属性被设置时本属性可被忽略

 

typedef enum : NSInteger {

   UITableViewCellAccessoryNone,

   UITableViewCellAccessoryDisclosureIndicator,

   UITableViewCellAccessoryDetailDisclosureButton,

   UITableViewCellAccessoryCheckmark,

   UITableViewCellAccessoryDetailButton

} UITableViewCellAccessoryType;

 

  1. @property(nonatomic, retain) UIView *accessoryView

A view that is used, typically as a control, on the right side of the cell (normal state).

cell附加视图

若该属性为nil可通过accessoryType 选择附加视图的显示风格

 

 

  1. @property(nonatomic) UITableViewCellAccessoryType editingAccessoryType

The type of standard accessory view the cell should use in the table view’s editing state.

cell附加视图在编辑状态下的标准风格

editingAccessoryView被设置时本属性可被忽略

 

  1. @property(nonatomic, getter=isSelected) BOOL selected

A Boolean value that indicates whether the cell is selected.

指示cell是否被选中,可设置该属性为YES使cell处在被选中状态(非动画)

 

  1. @property(nonatomic) UITableViewCellSelectionStyle selectionStyle

The style of selection for a cell.

cell被选中时的风格

 

typedef enum : NSInteger {

   UITableViewCellSelectionStyleNone,

   UITableViewCellSelectionStyleBlue,

   UITableViewCellSelectionStyleGray,

   UITableViewCellSelectionStyleDefault

} UITableViewCellSelectionStyle;

 

  1. - (void)setSelected:(BOOL)selected  animated:(BOOL)animated

Sets the selected state of the cell, optionally animating the transition between states.

设置cell处在被选中状态,动画方式(可选)

 

  1. @property(nonatomic, getter=isHighlighted) BOOL highlighted

A Boolean value that indicates whether the cell is highlighted.

指示cell是否处在高亮的状态,可设置该属性为YES使cell处在高亮状态(非动画)

 

  1. - (void)setHighlighted:(BOOL)highlighted    animated:(BOOL)animated

Sets the highlighted state of the cell, optionally animating the transition between states.

设置cell处在高亮状态,动画方式(可选)

 

  1. @property(nonatomic, getter=isEditing) BOOL editing

A Boolean value that indicates whether the cell is in an editable state.

指示cell是否处在可编辑状态

 

  1. - (void)setEditing:(BOOL)editing    animated:(BOOL)animated

Toggles the receiver into and out of editing mode.

触发接收者进入或退出编辑模式,动画(可选)

 

  1. @property(nonatomic, readonly) UITableViewCellEditingStyle editingStyle

The editing style of the cell. (read-only)

cell编辑风格,只读,默认为 UITableViewCellEditingStyleNone

具体某个cell的风格可在UITableViewDelegate中的方法

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView   editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 设置

 

typedef enum : NSInteger {

   UITableViewCellEditingStyleNone,

   UITableViewCellEditingStyleDelete,

   UITableViewCellEditingStyleInsert

} UITableViewCellEditingStyle;

 

  1. @property(nonatomic, readonly) BOOL showingDeleteConfirmation

Returns whether the cell is currently showing the delete-confirmation button. (read-only)

           返回当前cell是否显示“删除-确认”按钮  

 

        

  1. @property(nonatomic) BOOL showsReorderControl

           A Boolean value that determines whether the cell shows the reordering control.

          决定cell是否显示重新排序控件

 

  1. - (void)willTransitionToState:(UITableViewCellStateMask)state

Called on the cell just before it transitions between cell states

cell状态间过渡前调用

 

typedef enum : NSUInteger {

   UITableViewCellStateDefaultMask                     = 0,

   UITableViewCellStateShowingEditControlMask          = 1 << 0,

   UITableViewCellStateShowingDeleteConfirmationMask   = 1 << 1

} UITableViewCellStateMask;

 

  1. - (void)didTransitionToState:(UITableViewCellStateMask)state

Called on the cell just after it transitions between cell states.

cell状态间过渡后调用

 

  1. @property(nonatomic) NSInteger indentationLevel

           The indentation level of the cell’s content.

           cell内容的缩进等级

 

          

  1. @property(nonatomic) CGFloat indentationWidth

           The width for each level of indentation of a cell'€™s content.

            。。。

 

 

  1. @property(nonatomic) UIEdgeInsets separatorInset

           The inset values for the cell’s content.

           cell内容的“嵌入”

          可使用本属性调整cell内容的左右边界

 

源文档 <https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewCell_Class/index.html#//apple_ref/occ/instp/UITableViewCell/separatorInset

版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS学习之路十三(动态调整UITableViewCell的高度)

大概你第一眼看来,动态调整高度是一件不容易的事情,而且打算解决它的第一个想法往往是不正确的。在这篇文章中我将展示如何使图表单元格的高度能根据里面文本内容来动态改变,同时又不必子类化UITableVie...

iOS学习笔记-027.UITableViewCell的基本用法

UITableViewCell的基本用法 一UITableViewCell简介 二UITableViewCellcontentView 三UITableViewCell对象的重用原理 为什么要重用 重...

iOS学习笔记1—UITableViewCell设置

原文来自老汪博客:一个流浪在帝都的码农。 今天遇到一种情况,当点击UITableViewCell高亮时,其子视图中有高亮的对象也高亮了,折腾了很久都没有搞定,跟同事们一起研究也没有找到方法,后来...

黑马程序员-IOS学习笔记-UITableViewCell

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、UITableViewCell 1.  UITableView的每一行都是一...

IOS学习-UITableViewCell的重用机制原理

创建UITableViewController子类的实例后,IDE生成的代码中有如下段落: - (UITableViewCell *)tableView:(UITableView *)table...

UITableViewCell头文件学习

UITableViewCellStyle:     UITableViewCellStyleDefault     UITableViewCellStyleValue1, ...

UITableViewCell学习笔记(一)

UITableViewCell UITableView的每一行都是一个UITableViewCell,通过dataSource的tableView:cellForRowAtIndexPath:方...

ioS学习 UITableViewCell 增加、删除、移动

@implementation HomeTableViewController - (void)viewDidLoad {     [super viewDidLoad]; ...
  • ridxmc
  • ridxmc
  • 2016年03月12日 23:47
  • 201

iOS学习笔记—— UITableViewCell 详解

一、系统自定义的

动态计算UITableViewCell高度详解 -- 学习

转自Haven's Blog   不知道大家有没有发现,在iOS APP开发过程中,UITableView是我们显示内容常见的控件,本人觉得它是UIKit中最复杂的一个控件。今天要向大家介绍的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UITableViewCell类学习
举报原因:
原因补充:

(最多只允许输入30个字)