分组的UITableView在iPad上的背景问题

最近在项目中使用了UITableView的分组功能,并且设置了UITableView的背景颜色,在iPhone真机和模拟器上都运行良好。

项目是通用的,用iPad的模拟器一运行,发现UITableView的背景颜色竟然没有改变,无论将背景改成什么颜色,始终都是一个亮灰色的背景。

一开始以为iPad不能设置UITableView的背景颜色,于是尝试将UITableView的背景设置为透明,并将UIView的背景颜色设置为期望的背景颜色,发现还是不行。

于是就google了一下,在StackOverflow上发现了解决办法:

  1. [panelTable setBackgroundView:nil];  
  2. [panelTable setBackgroundView:[[[UIView alloc] init] autorelease]];  
  3. [panelTable setBackgroundColor:UIColor.clearColor]; // Make the table view transparent  

其实上面第三行的方法是不行的,我上面已经想到并试验过。

但第一行和第二行的方法是确实可行的,没想到iPad还有这个差异。

值得注意的是,backgroundView只在SDK3.2及以后才能工作,为了向前兼容3.1.3及更早的版本,你必须自己检测UITableView是不是有backgroundView这个属性代码如下:

if ([self.tableView respondsToSelector:@selector(backgroundView)]) {  
  •     self.tableView.backgroundView = nil;  
  • }  

  • 。。。。。。。。。。。Ipad中选择组时清除背景色的方法,有效了。。。。。。。。。。。。。
        UIView *bgView = [[UIView alloc] init];
        bgView.backgroundColor = [UIColor clearColor];
        self.addContactsTableView.backgroundView = bgView;
        [bgView release];

    相关文章

    UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
    UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
    Objective-C中,类的实例变量(instance variables)和属性(...
    从内存管理的角度来看,block可以作为方法的传入参数是因为b...
    WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
    OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...