如果不是必须我肯定懒得去自定义cell

2016-02-03  本文已影响731人  Easy_VO

前言: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)
};

如果这是在满足需求有可以偷懒的前提下,也算是一种方便的方式吧,欢迎交流学习。刚转移到简书来,markdown模式还是不错的,如有不足请指正。

上一篇下一篇

猜你喜欢

热点阅读