我正在开发一款适用于iOS 6的应用程序。对于iOS7,该应用程序有几个布局和一般的少量外观问题。一个是无法将分组的tableview的背景颜色设置为透明。 Heres是我的代码,它不再起作用了
tableForDetails = [[UITableView alloc]initWithFrame:CGRectMake(0, yAxisTable, 320, 150) style:UITableViewStyleGrouped];
UIColor *backGroundColor = [UIColor clearColor];
UIView *bview = [[UIView alloc]init];
[bview setBackgroundColor:backGroundColor];
[tableForDetails setBackgroundView:bview];
非常感谢帮助。感谢
答案 0 :(得分:4)
在iOS7中为分组的uiTableview设置背景透明度非常简单。解决方案比我原先想象的更简单。
[tableForDetails setBackgroundColor:[UIColor clearColor]];
或仅限半透明
[tableForDetails setBackgroundColor:[[UIColor alloc]initWithRed:1.0 green:1.0 blue:1.0 alpha:0.5]];
这对我来说很好。
答案 1 :(得分:0)
我用它修理了它:
tableView.backgroundView = UIView.new;
答案 2 :(得分:0)
我在超类中对Apple组件进行了任何改进。以下升级适用于BasicTableView.m,它扩展了UITableView
:
1)覆盖setBackgroundColor
以使用iOS 7及更高版本,同时保持与iOS 6和5的向后兼容性。
2)覆盖initWithCoder:
和initWithFrame:style:
以将背景颜色初始化为默认的透明背景
- (id) initWithCoder:(NSCoder *)decoder
{
self = [super initWithCoder:decoder];
if (self) {
[self setup];
}
return self;
}
- (id) initWithFrame:(CGRect)frame style:(UITableViewStyle)style
{
self = [super initWithFrame:frame style:style];
if (self) {
[self setup];
}
return self;
}
- (void) setup
{
//Set the BG color to clear color by default
[self setBackgroundColor:[UIColor clearColor]];
}
- (void) setBackgroundColor:(UIColor *)backgroundColor
{
if (self.style == UITableViewStyleGrouped) {
if (majorSystemVersion() < 7) {
UIView *tableBgView = [[UIView alloc] init];
tableBgView.backgroundColor = backgroundColor;
self.backgroundView = tableBgView;
} else {
[super setBackgroundColor:backgroundColor];
}
}
}
//majorSystemVersion() is defined elsewhere in a utility file
int majorSystemVersion(void) {
NSString *systemVersion = [UIDevice currentDevice].systemVersion;
NSArray *systemVersionComps = [systemVersion componentsSeparatedByString:@"."];
NSString *majorVersion = [systemVersionComps objectAtIndex:0];
return [majorVersion intValue];
}
答案 3 :(得分:-1)
UITableViewCell在iOS 7中默认为白色背景
将它放在你的cellforRowAtIndexPath
中[cell setBackgroundColor:[UIColor clearColor]]