ios7 适配
1.状态栏20px高度问题
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { [application setStatusBarStyle:UIStatusBarStyleLightContent]; self.window.clipsToBounds =YES; self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20); //added on 19th Sep self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, ScreenHeight-20); }
工程Plist中设置:
View controller-based status bar appearance = NO;
2.部分页面不能适配的,强制写回
[self.view setBounds:CGRectMake(0, -20, self.view.bounds.size.width, self.view.bounds.size.height)];
3.
if (systemVersion >= 7.0) { self.edgesForExtendedLayout = UIRectEdgeNone; self.extendedLayoutIncludesOpaqueBars = NO; self.modalPresentationCapturesStatusBarAppearance = NO; }
4 搜索栏隐藏在状态后面
-(void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller { if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) { CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame]; [UIView animateWithDuration:0.25 animations:^{ for (UIView *subview in self.view.subviews) subview.transform = CGAffineTransformMakeTranslation(0, statusBarFrame.size.height); }]; } } -(void)searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller { if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) { [UIView animateWithDuration:0.25 animations:^{ for (UIView *subview in self.view.subviews) subview.transform = CGAffineTransformIdentity; }]; } }