前言:cell那点事儿
原生的tableview的样式那几种或许你会觉得这根本不够用啊,然而有时候的确又没有必要再去大肆的浪费时间去创建万金油cell。这个时候我们看看源码里的两个属性。
@property (nonatomic, readonly) UITableViewCellEditingStyle editingStyle;
// default is UITableViewCellEditingStyleNone. This is set by UITableView using the delegate's value for cells who customize their appearance accordingly.
@property (nonatomic) BOOL showsReorderControl; // default is NO
@property (nonatomic) BOOL shouldIndentWhileEditing; // default is YES. This is unrelated to the indentation level below.
@property (nonatomic) UITableViewCellAccessoryType accessoryType; // default is UITableViewCellAccessoryNone. use to set standard type
@property (nonatomic, strong, nullable) 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, strong, nullable) UIView *editingAccessoryView; // if set, use custom view. ignore editingAccessoryType. tracks if enabled can calls accessory action
25EE861C-8084-4BE8-A61F-3B88D1A3A6D1.png
如果你的项目汇总有如此的需要,只需要把右侧默认的剪头改成图片,那么你来对了。
UIButton *btDele = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 27, 27)];
// btDele.backgroundColor = MTOther_Color;
[btDele setImage:[UIImage imageNamed:@"Trash"] forState:UIControlStateNormal];
btDele.userInteractionEnabled = NO;
// [btDele addTarget:self action:@selector(deletaPassenger) forControlEvents:UIControlEventTouchUpInside];
cell.accessoryView = btDele;
这里我的需求是把Button的事件禁止掉,只响应cell的,当然你也可以不取消,都是可以的。
你可以用任何UIView子类控件例如UILabel、UIButton。。。对象来给cell.accessoryView赋值,这样界面上面就会显示你想要的效果了。
设置UITableViewCell的accessoryType
如果希望cell上面显示一个浅灰色的箭头,可以通过accessoryType来达到目的,代码如下,
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
这样就设置了箭头装的type,我们可以设置多种类型,苹果定义的枚举类型如下,
typedef NS_ENUM(NSInteger, UITableViewCellAccessoryType) {
UITableViewCellAccessoryNone, //不显示任何的accessoryView
UITableViewCellAccessoryDisclosureIndicator, //浅灰色箭头图标
UITableViewCellAccessoryDetailDisclosureButton, //显示详情的按钮
UITableViewCellAccessoryCheckmark, //就是你考试时候打钩的钩形状
UITableViewCellAccessoryDetailButton NS_ENUM_AVAILABLE_IOS(7_0) //
};
读者可以逐个试一试,找到自己想要的效果。
有时候点击cell时候加深的效果
设置UITableViewCell的点击风格selectionStyle,
有的时候我们需要点击cell时候相应的cell背景加深的效果,有的时候我们不需要,这时候可以使用下面的语句来实现,
settingCell.selectionStyle = UITableViewCellSelectionStyleNone
查看文档中的枚举类型如下,
typedef NS_ENUM(NSInteger, UITableViewCellSelectionStyle) {
UITableViewCellSelectionStyleNone,
UITableViewCellSelectionStyleBlue,
UITableViewCellSelectionStyleGray,
UITableViewCellSelectionStyleDefault NS_ENUM_AVAILABLE_IOS(7_0)
};
网友评论