`
啸笑天
  • 浏览: 3484072 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

iOS5&iOS6 Grouped类型UITableView背景色设置问题

 
阅读更多

刚接触ios的时候已经ios6了,遇到一个兼容ios5和ios6的问题。

在iOS6中,对于UITableViewStyleGrouped类型的UITableView,通过直接修改继承自UIViewbackgroundColor属性的方法来设置UITableView的背景色无效。

比如,在AppDelegate中设置窗口的颜色为淡黄色

self.window.backgroundColor = [UIColor colorWithRed:1.00f green:0.91f blue:0.82f alpha:1.00f];

在一个UIViewController的viewDidLoad方法中增加一个UITableView,设置其backgroundColor为透明色。

UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds style: UITableViewStyleGrouped];
tableView.dataSource = self;
tableView.delegate = self;
tableView.backgroundColor = [UIColor clearColor];
[self.view addSubview:tableView];

 

那么在iOS5及之前版本的模拟器上,运行的效果如下:


 

因为UITableView的背景色设为了[UIColor clearColor],所以tableView的背景色为UIWindow的颜色。
但是在iOS6模拟器和运行iOS6设备上的显示效果如下:


 

此时UITableView的背景色为默认的灰色,我们通过backgroundColor设置的背景色无效。

这个问题只在UITableViewStyleGrouped类型的UITableView中出现,UITableViewStylePlain类型的tableView没有这个问题,因为Group类型的TableView有个backgroundView,而plain类型的TableView没有(backgroundView属性为nil),目前看来,这可能因为backgroundView在中间挡住了背景色,这是否iOS6的bug还待确认。关于backgroundView,还可以参考下这里iPad Table backgroundView

目前对于这个问题的解决方法是将Group类型的tableView的backgroundView设为一个新的空白View或简单的设置为nil.如下

tableView.backgroundView = [[UIView alloc]init];
tableView.backgroundColor = [UIColor clearColor];

tableView.backgroundView = nil;
tableView.backgroundColor = [UIColor clearColor];

 

参考:
UITableView clearColor background not working
iPad Table backgroundView

  • 大小: 9.9 KB
  • 大小: 13.6 KB
分享到:
评论

相关推荐

    ios-常用的taBleView样式.zip

    Plain样式呈现单列无分组的列表,而Grouped样式则将内容分组显示,每组有独立的背景色,更适合作为章节或类别划分的数据展示。 在通讯录应用中,我们经常会看到一个边栏索引,允许用户快速滚动到以特定字母开头的...

    IOS应用源码之设置不同风格的table view样式 .rar

    Plain样式创建的是无分组的连续列表,而Grouped样式则将内容分组显示,每组有自己的背景色。 2. 自定义Cell: - UITableViewCell是默认的Cell类型,但我们可以创建自定义的UITableViewCell子类来添加额外的UI元素...

    IOS应用源码——设置不同风格的table view样式.rar

    在iOS开发中,UITableView是构建用户界面的重要组件,它用于展示列表数据,常见的有消息列表、设置列表等。本资源“IOS应用源码——设置不同风格的table view样式.rar”显然是一个关于如何自定义和美化UITableView...

    IOS应用源码——设置不同风格的table view样式.zip

    - **背景色**:可以使用`tableView.backgroundColor`来改变TableView的背景颜色,或者设置背景图片。 - **分割线样式**:通过`tableView.separatorStyle`可更改分割线的样式,如单行、无边框等。 - **行高**:`...

    分节表视图_静态

    分组表视图的每个节都会有自己的背景色,看起来像一系列独立的部分,增加了视觉层次感。 为了实现这个静态分节表视图,我们需要遵循以下步骤: 1. **创建UITableView对象**:在Interface Builder中,拖动一个...

Global site tag (gtag.js) - Google Analytics