UITableViewCell - UITableView中cell的边框和背景 .

news/2024/11/8 11:12:46

UITableView是iOS开发中最常用的元素,在平常用的iPhone App中大部分都用到了UITableView,所以你应该知道她的强大了。

需求很简单,就是在一个UITableView里面实现一个不一样的UITableViewCell,如下图里的“切换账号”按钮


正常情况下grouped样式(UITableViewStyleGrouped)UITableViewCell都是有边框的,所以如果只是用addSubView添加一个按钮的话,就会有边框在外面,不符合有要求,也想过用一个大的图片,把这个cell给盖住,但是感觉这方案不够好,早上找Qzone项目组的同是问了下,他们是用的一个Plain样式的,那些圆角是用的图片,感觉还是不够好,更优美的方案应该是:

实很简单,把backgroundView设置为一个空的View,然后就干净了。看了下UITableViewCell的文档,backgroundView在plain-style的TableView里面是nil,在grouped-style的TableView里面并不是空的,所以这里人为置空一下就ok了,这是目前为止我见到的最优美的解决方案。


如果要自定义cell的颜色,应该定义cell的contentview的颜色,并将它的上面的子视图的颜色设置为clear。可以在

当然也可以在(UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath { ... }中进行设置。

 

给UITableView增加一个好看的背景能为应用程序增色不少,并能促进app的销售,但是随便增加一个背景图片会史你的app更加丑陋。

这种方法直接设置tableview的背景色,效果不佳。每个cell中的背景是重复的!


正确的方式:在tableview后面放置一个背景视图,并将tableview设为透明色。


这种方法产生的背景在整个表格Cell中是连续的整张图片。

当然,现在是直接在window下增加了背景层,有点不太灵活,在有导航栏的情况下,可以直接更改导航栏的背景,效果是一样的



下面在单个的ViewController里更改背景


在用代码产生的tableViewcontroller中,可以通过loadview方法设置



 

 


http://www.niftyadmin.cn/n/3653613.html

相关文章

自定义UITableViewCell的accessoryView 判断哪个Button按下 .

UITableview的开发中经常要自定义Cell右侧的AccessoryView,把他换成带图片的按钮,并在用户Tap时判断出是哪个自定义按钮被按下了。 创建自定义按钮,并设为AccessoryView if (cell nil) { cell [[UITableView alloc] initWithStyle:UITable…

Java实现的插入法建立B+树

我所实现的B树是有关于《数据库系统实现》上的B书算法的实现。利用插入法,我构建出了一个以long型数据作为键值,以Object型数据为指针的B索引树。有关我的程序的说明:(1)元组数量的取值范围的含义是:本程序…

自定义UINavigationBar背景图片和颜色

首先准备导航栏背景图片,大小 320x44, 2x文件大小640x88,iOS5以后更改背景图片较简单 UINavigationBar *navBar self.navigationController.navigationBar; #define kSCNavBarImageTag 10 if ([navBar respondsToSelector:selector(setBackgroundImag…

动态装载问题的研究

1 问题背景我们都知道,Java平台一大亮点就在于其类装载器体系结构,这使得JVM可以在运行期从Java API,扩展路经(java.ext.path),classpath以及用户指定的位置(文件或网络)中载…

HTML5 音视频标签的方法、属性和事件

方法 方法描述addTextTrack()为音视频加入一个新的文本轨迹canPlayType()检查指定的音视频格式是否得到支持load()重新加载音视频标签play()播放音视频pause()暂停播放当前的音视频 属性 属性描述audioTracks返回可用的音轨列表(MultipleTrackList对象&#xff09…

One-Jar之旅

1 问题的提出作为一个经常使用Java编程的程序员,当我在发布我的Java程序的时候,我习惯于这样组织所有的程序和资源:主程序放到JVM系统变量“user.dir”所指向的目录中(假设是MyAppDir目录),程序…

JasperReport+iReport高级报表设计实战

JasperReportiReport高级报表设计实战序言一直以来,报表都是很多项目中一个重要的、不可获取的组成部分。然而其复杂性和专业性又使得程序员不能够也没时间自己设计属于目前手头正在构建的系统的报表模块;即便设计来了又可能由于通用性等原因不能够应用到…