最近在项目中使用了UITableView的分组功能,并且设置了UITableView的背景颜色,在iPhone真机和模拟器上都运行良好。
项目是通用的,用iPad的模拟器一运行,发现UITableView的背景颜色竟然没有改变,无论将背景改成什么颜色,始终都是一个亮灰色的背景。
一开始以为iPad不能设置UITableView的背景颜色,于是尝试将UITableView的背景设置为透明,并将UIView的背景颜色设置为期望的背景颜色,发现还是不行。
于是就google了一下,在StackOverflow上发现了解决办法:
- [panelTable setBackgroundView:nil];
- [panelTable setBackgroundView:[[[UIView alloc] init] autorelease]];
- [panelTable setBackgroundColor:UIColor.clearColor]; // Make the table view transparent
其实上面第三行的方法是不行的,我上面已经想到并试验过。
但第一行和第二行的方法是确实可行的,没想到iPad还有这个差异。
值得注意的是,backgroundView只在SDK3.2及以后才能工作,为了向前兼容3.1.3及更早的版本,你必须自己检测UITableView是不是有backgroundView这个属性,代码如下: