我在iOS7中遇到了两个我无法弄清楚的问题。
第一个问题是TableView行位于状态栏下方,如何禁用它,或者使表视图的节头始终位于状态栏下?
我的第二个问题是导航控制器状态栏似乎是黑色的黑色背景,我不知道如何解决它,视图控制器背景是白色的,但状态栏提醒黑色和我不知道为什么。
更新:
仍然没有答案。
答案 0 :(得分:1)
答案 1 :(得分:0)
我认为您需要执行以下代码。
您必须检查ios7的条件。
对于tableview,您将需要这两个委托方法。
检查下面的代码。
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
int versionValue=[currSysVer intValue];
if(versionValue>=7)
{
return 60;
}
return 0;
}
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *headerView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 60)];
[headerView setBackgroundColor:[UIColor clearColor]];
return headerView;
}
希望这会对你有所帮助。
答案 2 :(得分:0)
回答第二期问题!
输入你的didFinishLaunchingWithOptions:
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
[self customizeios7];
} else {
[self customizeios6];
}
并制作这两个空洞:
-(void)customizeios6 {
UIImage *navBackgroundImage = [UIImage imageNamed:@"navigationbar-ios6"];
[[UINavigationBar appearance] setBackgroundImage:navBackgroundImage forBarMetrics:UIBarMetricsDefault];
}
-(void)customizeios7 {
// SET STATUSBAR TEXT WHITE
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
// SET NAVIGATION IMAGE
UIImage *navBackgroundImage = [UIImage imageNamed:@"navigationbar-ios7"];
[[UINavigationBar appearance] setBackgroundImage:navBackgroundImage forBarMetrics:UIBarMetricsDefault];
}
UINavigationBar的图片尺寸:
适用于iOS 6:
640px / 88px
适用于iOS 7:
640px / 128px
答案 3 :(得分:0)
使用这些代码行
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
// iOS 7
[self prefersStatusBarHidden];
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
} else {
// iOS 6
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
}
和
- (BOOL)prefersStatusBarHidden
{
return YES;
}