在模型UIViewController中,我有以下loadView实现(一切都是以编程方式创建的):
- (void)loadView {
// Add Basic View
UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 540, 620)];
myView.backgroundColor = [UIColor clearColor];
self.view = myView;
[myView release];
// Add NavigationBar
// Add a BG image
// Add Table
UITableView *tbView = [[UITableView alloc] initWithFrame:CGRectMake(30, 80, 480, 250) style:UITableViewStyleGrouped];
tbView.dataSource = self;
tbView.delegate = self;
tbView.scrollEnabled = NO;
tbView.backgroundColor = [UIColor clearColor];
[tbView reloadData];
[self.view addSubview:tbView];
[tbView release];
// some more code
}
正如你所看到的,我将backgroundColor设置为clearColor,但是当我编译并运行代码时,我总是看到桌子背后的灰色背景:
我不明白我做错了什么(听起来很愚蠢,我知道),我曾经有过相同的代码,而且工作得非常好。我正在使用iOS SDK 4.2.1进行编译
答案 0 :(得分:43)
您还需要在最近的(自3.2版)iOS版本中将UITableView的backgroundView属性设置为nil。
因此,添加......
tbView.backgroundView = nil;
......应该解决你的问题。
也就是说,如果你想与3.2之前的设备保持兼容,你应该在调用它之前通过instancesRespondToSelector
方法检查它是否存在。
答案 1 :(得分:12)
确保您设置了以下3个选项:
tbView.opaque = NO;
tbView.backgroundColor = [UIColor clearColor];
tbView.backgroundView = nil;
答案 2 :(得分:3)
试
tbView.backgroundView = nil;
答案 3 :(得分:0)
我尝试从故事板中进行更改。 它在
中运行良好.container {
float : left;
width : 26px;
border : 1px solid #999;
display : flex;
justify-content : center;
margin-right : 10px;
padding : 3px 0;
--clr : orange;
}
.container:hover {
--clr : yellow;
}
.c1 .box { --hgt : 100; }
.c2 .box { --hgt : 200; }
.c3 .box { --hgt : 400; }
.c1:hover .box { --hgt : 200; }
.c2:hover .box { --hgt : 400; }
.c3:hover .box { --hgt : 100; }
.box {
height : calc(1px * var(--hgt));
width : 20px;
background : blue;
position : relative;
transition : height 1s ease-in-out;
}
.box::before {
content : "";
position : absolute;
height : 100%;
width : 99%;
background-color : var(--clr);
left : 0;
top : -1px;
transform : rotate( calc(-500deg / var(--hgt))); /* adjust 500deg */
z-index : -1;
transform-origin : center center;
}