今天看开源代码,有些UITableView方面细节的东西,整理了与你们共享,spa
一、设置UITableViewCell的accessoryView设计
有时候咱们须要设置cell的一些样式,好比下图,3d
这个就是设置了cell的accessory属性的内容,若是咱们想在上面显示Switch,则能够经过下面的代码,orm
cell.accessoryView = _modelSwitch;对象
这样就是用一个UISwitch对象_modelSwitch赋值给cell.accessoryView,固然你能够用任何UIView子类控件例如UILabel、UIButton。。。对象来给cell.accessoryView赋值,这样界面上面就会显示你想要的效果了。图片
二、设置UITableViewCell的accessoryType文档
若是但愿cell上面显示一个浅灰色的箭头,能够经过accessoryType来达到目的,代码以下,it
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;io
这样就设置了箭头装的type,咱们能够设置多种类型,苹果定义的枚举类型以下,table
typedef NS_ENUM(NSInteger, UITableViewCellAccessoryType) {
UITableViewCellAccessoryNone, //不显示任何的accessoryView
UITableViewCellAccessoryDisclosureIndicator, //浅灰色箭头图标
UITableViewCellAccessoryDetailDisclosureButton, //显示详情的按钮
UITableViewCellAccessoryCheckmark, //就是你考试时候打钩的钩形状
UITableViewCellAccessoryDetailButton NS_ENUM_AVAILABLE_IOS(7_0) //
};
读者能够逐个试一试,找到本身想要的效果。若是上面的效果都不让人满意,那只能自定义cell,而后在cell上面放上UIImageView,并贴上本身设计的图片了。
三、设置UITableViewCell的点击风格selectionStyle,
有的时候咱们须要点击cell时候相应的cell背景加深的效果,有的时候咱们不须要,这时候可使用下面的语句来实现,
settingCell.selectionStyle = UITableViewCellSelectionStyleNone
查看文档中的枚举类型以下,
typedef NS_ENUM(NSInteger, UITableViewCellSelectionStyle) {
UITableViewCellSelectionStyleNone,
UITableViewCellSelectionStyleBlue,
UITableViewCellSelectionStyleGray,
UITableViewCellSelectionStyleDefault NS_ENUM_AVAILABLE_IOS(7_0)
};
读者能够逐个试一试,这里只是抛砖引玉,再也不赘述。
四、返回前一个页面的时候,cell去除点击效果
当咱们点击cell,push进入下一个页面,而后再返回前一个页面的时候,这时咱们发现cell有背景加深的效果,以下图所示,
想要去掉这种效果,只要在-(void)tableView...didSelect中添加以下代码,
#pragma mark - UITableViewDataSource method
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//....
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
这样在返回前一个页面的时候,以前选中的cell就没有背景加深的效果了,以下图所示,
本人建了一个iOS交流群188647173,欢迎各位iOS大神前来交流。