IOS SDK -UITableView的奇葩特性
UITableView是IOS提供的一个带有复用机制的滚动表格,目前的基本功能就是垂直的表格,可以有多个section,每个section可以有多个row,然后还包含有sectionview,footview,headview等等入口可以设置tableview的样式。
正常情况下,大家都会使用复用机制,一方面提高运行效率,一方面可以节省内存,但是没滚动的时候都需要更新每个cell。如果有兴趣的话可以验证一下,UITableView在创建cell的时候一般只会创建一个屏幕大的cell个数,或是多一个。这是很神奇而且很合理的设计。实在是佩服。如果你不使用复用机制的话,你会发现row number很大的时候,滚动的效率很卡。
UITableView提供了两种样式,一种Plain,一个Group,具体的样式效果可以通过编译运行得到。具体效果图不贴了。由于收到了苹果的限制,目前只支持这两种样式,Plain的是整个cell横跨tableview,而group的边框会根据tableview多大,系统会自动调整。所以我们想根据UITableViewCell做一些自定义的cell的时候,就会发现受到系统的限制,有时候想要的效果可能没办法做到。比如像group的边框边距。当然可以通过获取superview去修改,但是这种做法不推荐。
另外,自定义Cell我们可能会经常用到。通过继承UITableViewCell,去实现一个自定义样式的Cell。有时候我们想要增加一些自定义的横线,如果你通过addsubview的形式去添加一个view到cell上的时候,有时候你会发现,在点击cell的时候,那个横线就没有了。通过研究发现。原来在点击cell的时候,cell会把添加在上面的view,只要是空白的,不管是view,label,都是被设置为透明。导致我们的效果没法达到。后面笔者通过尝试找到了下面的方法。刚开始就通过cell上下添加两条分割线,但是最后一个cell或是第一个,总是会不完美。后面通过研究,发现可以重载
- - (void)setSelected:(BOOL)selected animated:(BOOL)animated
- - (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
这两个函数,在系统执行set之后,我们在后面重现把我们的分割线的颜色值重置一下,你会发现,完美了。一切都正常了。~~~~~~
IOS SDK -UITableView的奇葩特性的更多相关文章
- XE6移动开发环境搭建之IOS篇(9):配置XE6的IOS SDK(有图有真相)
网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 1.开启PAServ ...
- 高德地图iOS SDK限制地图的缩放比例
问题 高德地图的iOS SDK 3D版中(v2.4.0), 显示范围在560m左右时建筑会呈现3D效果. 我们有没有办法可以限制地图最小缩放到这个比例, 从而保证建筑始终使用3D效果显示呢? 探索 高 ...
- iOS SDK Release Notes for iOS 9 iOS9 SDK 版本更新说明
Important: This is a preliminary document for an API or technology in development. Apple is supplyin ...
- Xamarin.iOS调试提示需要iOS SDK
Xamarin.iOS调试提示需要iOS SDK 错误信息:The version of Xamarin.iOS requires th iOS 9.3 SDK (shipped with Xco ...
- 百度VS高德:LBS开发平台ios SDK对比评测
随着iPhone6手机的热销,目前的iOS应用开发市场也迎来了全盛时期.据了解,目前市面上已有的iOS应用基本覆盖了购物.上门服务.用车服务.娱乐等行业.而在这些iOS应用中,内置LBS服务的应用占大 ...
- ios--集成支付宝钱包支付iOS SDK的方法与经验
文/胖花花(简书作者)原文链接:http://www.jianshu.com/p/fe56e122663e著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 没想到,支付宝的SDK是我目前 ...
- 【转】使用Xcode中的iOS SDK给iphone开发出第一个App程序
之前已经折腾过用Xcode开发OS X的程序了,现在继续折腾,用iOS SDK开发移动设备(iphone/ipad/ipod touch)的程序. 1.从iOS Developer Library中找 ...
- 集成支付宝钱包支付ios SDK的方法和经验
没想到,支付宝的SDK是我目前用过的所有第三方SDK中最难用的一个了. 下载 首先,你要想找到这个SDK,都得费点功夫.现在的SDK改名叫移动支付集成开发包了,下载页面在 这里 的 “请点此下载集成开 ...
- 【学习总结】OS X , IOS , IOS SDK , XCode之间的关系
几个基本的概念 : OS X : 属于桌面PC级别(IMac,MacPro等)对应安装的操作系统 IOS : 属于移动设备级别(Iphone,Ipad等)对应安装的操作系统 XCode: 是一个IDE ...
随机推荐
- 047 大数据下的java client连接JDBC
1.前提 启动hiveserver2服务 url,username,password. 2.官网 3.程序 4.结果 emp的第一列与第二列 5.源程序 package com.cj.it.hiveU ...
- Nginx禁止直接通过IP地址访问网站以及限制IP登陆某目录(关闭默认站点或空主机头)
这篇文章主要介绍了Nginx中禁止使用IP访问网站的配置实例,一般在备案时可能需要这种设置,需要的朋友可以参考下 国内因为备案的原因,所有服务器都要禁止使用IP访问网站.否则,如果允许使用IP访问 ...
- Python - __name__ == '__main__'
if __name__ == '__main__': app.run() __name__系统变量指示模块应如何被加载,他的值为"__main__"时表示当前模块是被直接执行. _ ...
- STL容器底层数据结构的实现
C++ STL 的实现: 1.vector 底层数据结构为数组 ,支持快速随机访问 2.list 底层数据结构为双向链表,支持快速增删 3.deque ...
- webstorm 格式化代码及常用快捷键
mac 下 webstorm 格式化代码的快捷键 Option+Command+l windows 下 webstorm 格式化代码的快键键 Ctrl+Alt+l centOS 下webstorm 格 ...
- EF连接字符串小问题记录
1.EFDbContext”不包含必需的 providerName 特性: <connectionStrings> <add name="EFDbContext" ...
- [Codeforces743D][luogu CF743D]Chloe and pleasant prizes[树状DP入门][毒瘤数据]
这个题的数据真的很毒瘤,身为一个交了8遍的蒟蒻的呐喊(嘤嘤嘤) 个人认为作为一个树状DP的入门题十分合适,同时建议做完这个题之后再去做一下这个题 选课 同时在这里挂一个选取节点型树形DP的状态转移方程 ...
- Easydarwin加FFMPEG实现HLS流视频点播
前言 最近有点迷茫,所以将自己用过的东西写个Demo记录一下,复习复习. 具体实现: Easydarwin 一个开源的好用的流媒体平台框架. FFMPEG 一个视频音频处理神器,就是用起来有点麻烦, ...
- Android应用开发-Activity
Android四大组件:Activity,Service,Broadcast Receiver,Content Provider Activity是Context的子类,同时实现了Window.Cal ...
- 14,EasyNetQ-使用EasyNetQ.Hosepipe重新提交错误消息
EasyNetQ队列管理实用程序. 用它从队列中抓取消息并重新发布. 还可以用它来检查错误队列消息并重试它们. 1,用法: EasyNetQ.Hosepipe.exe <command> ...