UITableViewCell

原创 2013年12月02日 20:58:46

UITableViewCellStyle:

四种Cell类型。

UITableViewCellSeparatorStyle

分割线类型。(group三种,plain两种)

UITableViewCellSelectionStyle

Cell选中的时刻的颜色。

UITableViewCellEditingStyle

编辑状态下的模式。

UITableViewCellAccessoryType

Cell右侧附加view的类型。

======================================================

UITableViewCellStateMask

Cell的状态枚举。


// Content.  These properties provide direct access to the internal label and image views used by the table view cell.  These should be used instead of the content properties below.

@property(nonatomic,readonly,retain) UIImageView  *imageView NS_AVAILABLE_IOS(3_0);  // default is nil.  image view will be created if necessary.

直接访问Cell中的imageview,默认是没有创建的,在设置内容的时刻才会创建。


@property(nonatomic,readonly,retain) UILabel      *textLabel NS_AVAILABLE_IOS(3_0);  // default is nil.  label will be created if necessary.

@property(nonatomic,readonly,retain) UILabel      *detailTextLabel NS_AVAILABLE_IOS(3_0);// default is nil.  label will be created if necessary (and the current style supports a detail label).

同上,需要看Cell类型。


// If you want to customize cells by simply adding additional views, you should add them to the content view so they will be positioned appropriately as the cell transitions into and out of editing mode.

@property(nonatomic,readonly,retain) UIView       *contentView;

每个Cell都会存在一个唯一的contentView,定制cell的时刻我们应该将内容放到这个cell中。这样,我们自定义的内容才能和其他内容一样随着editing状态改变而改变。


// Default is nil for cells in UITableViewStylePlain, and non-nil for UITableViewStyleGrouped. The 'backgroundView' will be added as a subview behind all other views.

@property(nonatomic,retain) UIView                *backgroundView;

背景view

@property(nonatomic,retain) UIView                *selectedBackgroundView;

选中状态下的背景view。


// If not nil, takes the place of the selectedBackgroundView when using multiple selection.

@property(nonatomic,retain) UIView                *multipleSelectionBackgroundView NS_AVAILABLE_IOS(5_0);

多选情况下被选中时的背景view。


关于Cell的复用-----------------------------------------

@property(nonatomic,readonly,copy) NSString       *reuseIdentifier; 返回标识符

- (void)prepareForReuse; // if the cell is reusable (has a reuse identifier), this is called just before the cell is returned from the table view method dequeueReusableCellWithIdentifier:.  If you override, you MUST call super.

子类可以通过覆写这个方法,那么在Cell在复用之前调用这个方法做些操作。

@property(nonatomic) UITableViewCellSelectionStyle  selectionStyle;            // default is UITableViewCellSelectionStyleBlue.

设置Cell选中状态的颜色


@property(nonatomic,getter=isSelected)BOOL         selected;                  // set selected state (title, image, background). default is NO. animated is NO

设置是否为选中状态。


@property(nonatomic,getter=isHighlighted)BOOL      highlighted;               // set highlighted state (title, image, background). default is NO. animated is NO

设置是否为高亮,高亮就是处于选中状态下的显示效果。

http://www.ekeol.com/forum/9423


- (void)setSelected:(BOOL)selected animated:(BOOL)animated;                     // animate between regular and selected state

带动画设置选中状态。


- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated;               // animate between regular and highlighted state

带动画设置高亮状态。


@property(nonatomic)BOOL   shouldIndentWhileEditing;  // default is YES.  This is unrelated to the indentation level below.

编辑状态下是否显示缩进。(必须在

editingStyleForRowAtIndexPath代理方法中将返回值设为none,也就是说编辑状态下不能有删除增加等按钮。

)你也许会觉得如果没有这些按钮,就算不设置这个属性为No也是一样的,事实上就算没有添加删除按钮,cell前面也会有缩进。(这个方法与indentationLevel没有联系)


@property(nonatomic) UITableViewCellAccessoryType   accessoryType; // default is UITableViewCellAccessoryNone. use to set standard type

设置右侧附加视图类型(系统类型)。


@property(nonatomic,retain) UIView                 *accessoryView;              // if set, use custom view. ignore accessoryType. tracks if enabled can calls accessory action

自定义右侧附加视图。


@property(nonatomic) UITableViewCellAccessoryType   editingAccessoryType;      // default is UITableViewCellAccessoryNone. use to set standard type

编辑状态下,右侧附加视图样式。(可以与移动按钮并存,会自动分开)

@property(nonatomic,retain) UIView                 *editingAccessoryView;       // if set, use custom view. ignore editingAccessoryType. tracks if enabled can calls accessory action

编辑状态下,右侧的自定义附加视图

@property(nonatomic) NSInteger                      indentationLevel;          // adjust content indent. default is 0

@property(nonatomic) CGFloat                        indentationWidth;          // width for each level. default is 10.0

这两个属性用来设置不同层次结构的内容的缩进大小。


@property(nonatomic,getter=isEditing)BOOL          editing;                   // show appropriate edit controls (+/- & reorder). By default -setEditing: calls setEditing:animated: with NO for animated.

设置某一个Cell的编辑状态,设置TableView会改变所有cell的状态。但是设置这个值为YES只能使当前cell出现右边的附加视图,前面的编辑按钮和后面的移动按钮都无法出现。

- (void)setEditing:(BOOL)editing animated:(BOOL)animated;

带动画的设置。

----------------------------

- (void)willTransitionToState:(UITableViewCellStateMask)stateNS_AVAILABLE_IOS(3_0);

- (void)didTransitionToState:(UITableViewCellStateMask)stateNS_AVAILABLE_IOS(3_0);

这两个方法应该在子类中覆写,当前Cell的状态发生改变的时刻就会触发这些方法,可以在这些方法中进行一些额外的操作。(例如:cell被点击以后就会进入

UITableViewCellStateShowingDeleteConfirmationMask 状态)




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

UITableViewCell使用Autolayout布局的解决过程

大屏iPhone的发布,感觉是时候必须使用autolayout布局的,最近看了很多的文章,开始尝试使用autolayout布局.UITableView是项目中最常用的控件,所以我决定从使用autola...
  • a732264588
  • a732264588
  • 2014年12月16日 14:03
  • 2340

UITableViewCell的几种创建和加载方式

本篇博客是关于UITableViewCell的几种创建和加载方式的,我相信有一大部分人对这个都是懵懵懂懂的,所以我今天就写一篇博客来说一下我个人的理解,如果有错误的地方请指正!说到UITableVie...
  • youMN
  • youMN
  • 2015年12月04日 00:02
  • 1571

动态调整UITableViewCell高度的实现方法

动态调整UITableViewCell高度的实现方法 有时我们需要动态调整UITableViewCell的高度,根据内容的不同设置不同的高度,以前看到一种实现方法,写得有点麻烦,具体地址找不...
  • msyqmsyq
  • msyqmsyq
  • 2016年03月09日 08:45
  • 1202

Masonry适配——(7)UITableView中自定义UITableViewCell高度自适应及计算

https://github.com/potato512/SYDemo_Masonry 在UITableView列表的使用中,因为在自定义的UITableViewCell中页面相对复杂,所以会出现每...
  • potato512
  • potato512
  • 2017年01月17日 16:15
  • 2228

iOS中手写UITableViewCell的实现与逻辑(cell固定高度展现)

Ios中实现cell的重绘,会需要一点点的计算...
  • whuizhou
  • whuizhou
  • 2015年07月20日 14:00
  • 879

UITableViewCell中设置不同图片尺寸相同以及设置图片为圆形的方法

一、UITableViewCell中设置不同图片尺寸相同 //    图片尺寸不一样  修改cell左侧显示图片大小的方法  UIGraphics--- UIImage *ico...
  • ltj1171528192
  • ltj1171528192
  • 2015年10月05日 16:19
  • 844

iOS: UITableViewCell点击效果下, 防止子控件背景颜色改变

UITableViewCell在选中状态下, 上面的子控件会被渲染, 而改变颜色 如下图所示: 系统效果 橙色按钮被渲染, 颜色改变 有时, 我们不想要子控...
  • Lea__DongYang
  • Lea__DongYang
  • 2017年05月16日 16:35
  • 543

UITableView的cell的释放、内容消失等的思考总结

首先问题是在tableview的某个cell上面放了一个UITextField,然后textField填写的东西划出屏幕,再回来内容就消失了。后来知道是cell被替换(不是释放)了,然后又重新构建了一...
  • u014131398
  • u014131398
  • 2014年11月29日 09:16
  • 5797

解决UITableViewCell重用导致的重叠(字变粗)

UITableViewCell的重用机制是个非常强大的功能,但是有时候也会带来很大麻烦,比如说重叠,如图所示: 本来是这样的: 可是上下滚动几下之后就会变成这样!! cell里面所有的东...
  • Solar_Terry
  • Solar_Terry
  • 2017年05月16日 22:59
  • 313

三十而立,从零开始学ios开发(十二):Table Views(中)UITableViewCell定制 - minglz - 博客园

三十而立,从零开始学ios开发(十二):Table Views(中)UITableViewCell定制 - minglz - 博客园 我们继续学习Table View的内容,这次主要是针对UI...
  • billhepeng
  • billhepeng
  • 2015年07月27日 00:05
  • 942
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UITableViewCell
举报原因:
原因补充:

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