iOS开发技巧(系列十:UITableView及其Cell的一些细节)
iOS开发技巧(系列十:UITableView及其Cell的一些细节)
召唤攻城狮 发表于4年前
iOS开发技巧(系列十:UITableView及其Cell的一些细节)
  • 发表于 4年前
  • 阅读 2278
  • 收藏 1
  • 点赞 1
  • 评论 0

华为云·免费上云实践>>>   

摘要: UITableView应该算是iOS UIKit当中最精彩最最复杂的View空间了吧?很多细节都要慢慢积累。

今天看开源代码,有些UITableView方面细节的东西,整理了与大家共享,

1、设置UITableViewCell的accessoryView

有时候我们需要设置cell的一些样式,比如下图,

这个就是设置了cell的accessory属性的内容,如果我们想在上面显示Switch,则可以通过下面的代码,

cell.accessoryView = _modelSwitch;

这样就是用一个UISwitch对象_modelSwitch赋值给cell.accessoryView,当然你可以用任何UIView子类控件例如UILabel、UIButton。。。对象来给cell.accessoryView赋值,这样界面上面就会显示你想要的效果了。


2、设置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,然后在cell上面放上UIImageView,并贴上自己设计的图片了。


3、设置UITableViewCell的点击风格selectionStyle,

有的时候我们需要点击cell时候相应的cell背景加深的效果,有的时候我们不需要,这时候可以使用下面的语句来实现,

settingCell.selectionStyle = UITableViewCellSelectionStyleNone

查看文档中的枚举类型如下,

typedef NS_ENUM(NSInteger, UITableViewCellSelectionStyle) {

    UITableViewCellSelectionStyleNone,

    UITableViewCellSelectionStyleBlue,

    UITableViewCellSelectionStyleGray,

    UITableViewCellSelectionStyleDefault NS_ENUM_AVAILABLE_IOS(7_0)

};

读者可以逐个试一试,这里只是抛砖引玉,不再赘述。


4、返回前一个页面的时候,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大神前来交流。

共有 人打赏支持
粉丝 185
博文 53
码字总数 49671
×
召唤攻城狮
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: