我在iOS7中有两个我无法弄清楚的问题。
第一个问题是 TableView 行位于状态栏下方,我该如何禁用它,或者让表格视图的部分标题始终位于状态栏下方?
我遇到的第二个问题是在导航控制器上,状态栏似乎是黑色的,背景是黑色的,我不知道如何解决它,视图控制器的背景是白色的,但状态栏提醒黑色,我不知道知道为什么。
更新:
仍然没有答案。
我在iOS7中有两个我无法弄清楚的问题。
第一个问题是 TableView 行位于状态栏下方,我该如何禁用它,或者让表格视图的部分标题始终位于状态栏下方?
我遇到的第二个问题是在导航控制器上,状态栏似乎是黑色的,背景是黑色的,我不知道如何解决它,视图控制器的背景是白色的,但状态栏提醒黑色,我不知道知道为什么。
更新:
仍然没有答案。
我认为您需要执行以下代码。
您将不得不检查 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;
}
希望这对您有所帮助。
回答你的第二个问题!
放入您的 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:
640像素/88像素
对于 iOS 7:
640像素/128像素
使用这些代码行
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;
}