适配ios6 7

此篇,我基于storyboard纪录一下项目如何适配ios6 ios7.


步骤:

1 导航栏问题解决。众所周知,iphone5 为4寸,iphone4 为3.5寸,所以为适配iphone4 iphone5 导航栏的大小不一,且ios7 时,坐标从(0,0)开始。

创建UINavigationController的子类

在子类中添加:

#pragma mark一个类只会调用一次

+ (void)initialize

{

// 1.取出设置主题的对象

UINavigationBar *navBar = [UINavigationBar appearance];

// 2.设置导航栏的背景图片

NSString *navBarBg = nil;

if (IOS7Later ) { // iOS7

navBarBg = @"navBG64";

navBar.tintColor = [UIColor whiteColor];

} else { //非iOS7

navBarBg = @"navBG";

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackOpaque;

}

[navBar setBackgroundImage:[UIImage imageNamed:navBarBg] forBarMetrics:UIBarMetricsDefault];

NSLog(@"navFrame: %@",NSStringFromCGRect(navBar.frame));

// 3.标题

[navBar setTitleTextAttributes:@{

UITextAttributeTextColor : [UIColor whiteColor]

}];

}

#pragma mark控制状态栏的样式

- (UIStatusBarStyle)preferredStatusBarStyle

{

return UIStatusBarStyleDefault;//黑色

// return UIStatusBarStyleLightContent;

}


2 设置viewcontroller中属性

(1)self.automaticallyAdjustsScrollViewInsets = NO;
看这个UIViewController的这个属性你就明白了,此属性默认为YES,这样UIViewController下如果只有一个UIScollView或者其子类,那么会自动留出空白,让scollview滚动经过各种bar下面时能隐约看到内容。但是每个UIViewController只能有唯一一个UIScollView或者其子类,如果超过一个,需要将此属性设置为NO,自己去控制留白以及坐标问题。

(2)

if (IOS7) { self .edgesForExtendedLayout = UIRectEdgeNone; //视图控制器,四条边不指定 self .extendedLayoutIncludesOpaqueBars = NO ; //不透明的操作栏 self.modalPresentationCapturesStatusBarAppearance = NO; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值