文档章节

iOS开发技巧(系列十:UITableView及其Cell的一些细节)

召唤攻城狮
 召唤攻城狮
发布于 2014/05/09 17:16
字数 631
阅读 2303
收藏 1

今天看开源代码,有些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大神前来交流。

© 著作权归作者所有

共有 人打赏支持
召唤攻城狮
粉丝 184
博文 53
码字总数 49671
作品 0
玉林
UI_09 UITableView(表视图)

⼀、表视图 在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView。UITableView继承自UIScrollView,因此支持垂直滚动,而且性能极佳 1、表示图的样式 UITableViewStylePlain UITa...

黑伞将军
2015/08/26
0
0
UITableView的性能优化

前段时间面试得时候,面试的人有问到一个问题,就是UITableView得Cell里如果有尺寸比较大得图片,滑动得时候会有卡顿现象,问我是什么原因造成的,还有就是有没有改良的建议。 为此,我特地的...

北方人在上海
2015/11/19
0
0
优化UITableView性能

在iOS应用中,UITableView应该是使用率最高的视图之一了。iPod、时钟、日历、备忘录、Mail、天气、照片、电话、短信、 Safari、App Store、iTunes、Game Center⋯几乎所有自带的应用中都能看...

Liuxz-aaa
2011/09/09
0
0
ios学习--TableView详细解释

ios学习--TableView详细解释 分类: ios Object-C2012-05-17 08:48 1714人阅读 评论(0) 收藏 举报 -、建立 UITableView (NSArray )sectionIndexTitlesForTableView:(UITableView )tableView......

wcj
2012/11/01
0
0
UITableView的优化原理

当我们下啦一个 UITableView时,如果没有做优化,只是简单的实现功能代码如下,这样当我们有上百条tableviewcell的时候,我们滑动的非常快时会非常费内存,当然苹果公司不会让我们这样干,苹...

哥特复心
2013/11/29
0
3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea新建springCloud项目(4)- 商品服务

先从商品api文档入手: <h5> { "code": 0, "msg": "成功", "data": [ { "name": "热榜", "type": 1, "foods": [ { "id": "123456", "name": "皮蛋粥", "price": 1.2, "description": "好吃的......

monroeCode
6分钟前
1
0
InnoDB并发如此高,原因竟然在这?

InnoDB并发如此高,原因竟然在这? 原创: 58沈剑 架构师之路 昨天 《InnoDB行锁,如何锁住一条不存在的记录?》埋了一个坑,没想到评论反响剧烈,大家都希望深挖下去。原计划写写InnoDB的锁...

祖冲之
7分钟前
0
0
sklearn中predict_proba用法(注意和predict的区别)

参考网址:https://blog.csdn.net/m0_37870649/article/details/79549142 # 返回预测标签 print(clf.predict(x_test)) # 返回预测属于某标签的概率 print(clf.predict_proba(x_test))...

小叮当_加V
10分钟前
0
0
docker swarm创建consul集群

version: '3.6'x-consul: &consul image: consul:latest volumes: - consul:/consulvolumes: consul:services: client: <<: *consul ports: - "8500:......

weidedong
11分钟前
0
0
Git客户端(TortoiseGit)基本使用详解

1、 环境安装 Git最新版下载地址:https://gitforwindows.org/ TortoiseGit,Git客户端,32/64位最新版及对应的语言包下载地址:https://tortoisegit.org/download/ 安装的方法,一直下一步就...

hblt-j
17分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部