ios6及以下设置uitableview背景颜色
2014-10-14 17:48
435 查看
刚接触ios的时候已经ios6了,遇到一个兼容ios5和ios6的问题。
在iOS6中,对于UITableViewStyleGrouped类型的UITableView,通过直接修改继承自UIView的backgroundColor属性的方法来设置UITableView的背景色无效。
比如,在AppDelegate中设置窗口的颜色为淡黄色
在一个UIViewController的viewDidLoad方法中增加一个UITableView,设置其backgroundColor为透明色。
那么在iOS5及之前版本的模拟器上,运行的效果如下:
![](http://dl2.iteye.com/upload/attachment/0089/6326/1e8046d9-7f65-3e96-8632-ad4f6b10c217.png)
因为UITableView的背景色设为了[UIColor clearColor],所以tableView的背景色为UIWindow的颜色。
但是在iOS6模拟器和运行iOS6设备上的显示效果如下:
![](http://dl2.iteye.com/upload/attachment/0089/6328/314f28ea-ccfa-3af7-9986-51b7d75dbc13.png)
此时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.如下
或
参考:
UITableView clearColor background not working
iPad Table backgroundView
在iOS6中,对于UITableViewStyleGrouped类型的UITableView,通过直接修改继承自UIView的backgroundColor属性的方法来设置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及之前版本的模拟器上,运行的效果如下:
![](http://dl2.iteye.com/upload/attachment/0089/6326/1e8046d9-7f65-3e96-8632-ad4f6b10c217.png)
因为UITableView的背景色设为了[UIColor clearColor],所以tableView的背景色为UIWindow的颜色。
但是在iOS6模拟器和运行iOS6设备上的显示效果如下:
![](http://dl2.iteye.com/upload/attachment/0089/6328/314f28ea-ccfa-3af7-9986-51b7d75dbc13.png)
此时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
相关文章推荐
- UITableView背景颜色设置
- UITableView 如何设置背景颜色
- iOS6 UITableView的背景颜色的修改
- 设置UITableView Section的背景颜色和字体颜色-自定义Section
- ios 设置UITableView 选中行cell的背景颜色(自定义选中的背景颜色)
- 关于UITableView设置背景颜色无效的问题
- 设置UITableView Section的背景颜色和字体颜色
- 关于UItableView的表头背景颜色的设置
- 1016-06-首页20-封装工具条---UITableView控件距离顶部的间距问题----cell选中时的背景颜色设置
- UITableView Grouped风格时,设置背景颜色的问题
- iOS 7 UITableview 在Plain模式下 设置背景颜色无效
- 设置UITableView Section的背景颜色和字体颜色 ----------自
- iOS6 UITableView的背景颜色的修改
- IOS_设置UITableView Section的背景颜色和字体颜色(自定义section布局)
- 设置UITableView Section的背景颜色和字体颜色
- UITableView 设置背景图片
- iOS6 UITableView的 background颜色的修改
- 为UITableView的列设置间隔颜色
- 最新历史版本 :android--设置TextView部分文字的颜色和背景(高亮显示)
- iOS6 Grouped类型UITableView背景色设置问题