我只是在考验我的应用与iOS 6.0和Xcode中4.5GM,我已经建立了这样的观点:
[self.view setBackgroundColor:[UIColor groupTableViewBackgroundColor]];
因此,该视图具有比普通表视图相同的模式。
这适用于iOS 4和5罚款,但在iOS 6中,它只是给了我一个白色背景。
这是过时? 如果是这样,我怎么能代替它?
谢谢
我只是在考验我的应用与iOS 6.0和Xcode中4.5GM,我已经建立了这样的观点:
[self.view setBackgroundColor:[UIColor groupTableViewBackgroundColor]];
因此,该视图具有比普通表视图相同的模式。
这适用于iOS 4和5罚款,但在iOS 6中,它只是给了我一个白色背景。
这是过时? 如果是这样,我怎么能代替它?
谢谢
这种方法将在6.0种子计划期间如果你想在你自己的看法背景,看起来像表视图的背景被废弃,那么你应该创建一个空表视图,并把它放在你的后面内容。
首先,添加到您的viewDidLoad:
self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tableViewBackground.png"]];
要么
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"tableViewBackground.png"]];
那么这个图像添加到您的应用程序:
tableViewBackground.png
tableViewBackground@2x.png
我写了一个UIColor
类别来代替groupTableViewBackgroundColor
:
@interface UIColor (UITableViewBackground)
+ (UIColor *)groupTableViewBackgroundColor;
@end
@implementation UIColor (UITableViewBackground)
+ (UIColor *)groupTableViewBackgroundColor
{
__strong static UIImage* tableViewBackgroundImage = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
UIGraphicsBeginImageContextWithOptions(CGSizeMake(7.f, 1.f), NO, 0.0);
CGContextRef c = UIGraphicsGetCurrentContext();
[[self colorWithRed:185/255.f green:192/255.f blue:202/255.f alpha:1.f] setFill];
CGContextFillRect(c, CGRectMake(0, 0, 4, 1));
[[self colorWithRed:185/255.f green:193/255.f blue:200/255.f alpha:1.f] setFill];
CGContextFillRect(c, CGRectMake(4, 0, 1, 1));
[[self colorWithRed:192/255.f green:200/255.f blue:207/255.f alpha:1.f] setFill];
CGContextFillRect(c, CGRectMake(5, 0, 2, 1));
tableViewBackgroundImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
});
return [self colorWithPatternImage:tableViewBackgroundImage];
}
@end
该解决方案还允许调整背景的外观。 随意改变绘图代码:)
在iOS6的SKD,在UIInterface.h意见建议如下:
集团式的表视图背景不能再通过简单的颜色来表示。 如果你想在你自己的看法背景,看起来像表视图的背景,那么你应该创建一个空表视图,并把它放在你的后面内容。
此方法将在6.0种子节目期间被弃用
一个简单的解决办法是设置与等效RGB值的背景:
[self.view setBackgroundColor:[UIColor colorWithRed:215.0/255.0 green:217.0/255.0 blue:223.0/255.0 alpha:1.0]];
您可以将它们设置视图背景颜色为白色或任何你在厦门国际银行,以抑制警告喜欢。
如果有帮助的人,这里的具体是什么我在我的自定义视图来获得这样的背景下正在做的(使用提示从Beloeuvre先生)
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor clearColor];
UITableView *tv = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped];
[self.view addSubview:tv];
[self.view sendSubviewToBack:tv];
// ...
}
试试这个:
[myTableView setBackgroundView:nil];
[myTableView setBackgroundView:[[[UIView alloc] init] autorelease]];
如果你使用的故事板,并有许多意见你可能有困难的时候找到的看法。 您可以在“显示文本编辑”按钮,点击右上角。 这将改变故事以XML文本视图。 搜索“groupTableViewBackGroundColor”。 你应该找到与这个属性的看法。
它使用了以前的IOS版本的标准方法好主意。 所以,我提高了詹姆斯Boutcher的解决方案:
+ (void)setBackgroundColorForTableView:(UITableView*) tableView
{
UIColor* color = [UIColor whiteColor];
NSString* version = [[UIDevice currentDevice] systemVersion];
if([version floatValue] < 6.0)
{
tableView.backgroundColor = color;
}
else
{
tableView.backgroundView = nil;
UIView* bv = [[UIView alloc] init];
bv.backgroundColor = color;
tableView.backgroundView = bv;
[bv release];
}
}
在阐述@ NSElvis的解决方案,这里是相同的分组表视图背景的资产(这是足够宽,这样你就不会得到在横向有趣的效果)
back-tableview@2x.png
要使用它,简单地做
[YOUR_VIEW setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"back-tableview"]]];