声明:
[tableView setBackgroundColor:[UIColor clearColor]];
有no effect only on iPad especially with iOS8 with my existing App only
。只是为了测试一下,我创建了一个新的测试应用程序,只是为了确定问题,但it works
。我创建了一个UIViewController
类,如下所示:
@implementation TestViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
[self.view setBackgroundColor:[UIColor purpleColor]];
UITableView *aTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 100, 300, 300) style:UITableViewStylePlain];
[aTableView setBackgroundColor:[UIColor clearColor]];
[self.view addSubview:aTableView];
}
@end
并使用以下语句推送ist:
[self.navigationController pushViewController:[TestViewController new] animated:YES];
推出新的测试应用程序结果(如我所愿):
但是从我现有的应用程序(我必须实现的真实应用程序)结果如下:
即使使用iOS 8 iPhone,在iOS7 iPhone和iPad下也能完美地清除背景色。我试图找到可影响外观的UIAppearance Proxy实现,但没有。
我已经尝试了几项SO提案,包括setting the backgroundView to nil
和they haven't helped
。
为什么它正在使用新的测试应用程序以及它为什么不能使用我的现有应用程序?与UINavigationController
有什么关系?
NB:请不要将其标记为重复,因为此处的问题与现有问题完全或略有不同。
答案 0 :(得分:3)
这是细胞的颜色。所以你必须改变细胞的颜色。有关详细信息,请参阅
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
cell.backgroundColor = [UIColor clearColor];
}
答案 1 :(得分:0)
UIView *bgView = [[UIView alloc] initWithFrame:cell.frame];
bgView.backgroundColor = [UIColor clearColor];
cell.backgroundView = bgView;
试试上面的代码