2015年07月08日

1、对于 IOS6 导航栏背景图片为 44 则@2x 得设计为 88

2、对于 IOS7 导航栏背景图片为 64 则@2x 得设计为 128 

 出现以上差异原因是由于IOS6里面,状态栏20是不包括在导航栏里面的,而 IOS7是包含在导航栏里面的。

 

3、 修改状态栏的文字颜色(全局修改)

  1. 首先先在 info.plist文件中,先添加一个View controller-based status bar appearance   的选项 并设置为 NO.

  2.这是可以使用

// 设置状态栏的颜色
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

   这样就可以全局设置状态栏的颜色 , 放在代理里面比较合适

 

4、设置导航栏各种属性


// 设置导航栏的主题
    UINavigationBar *navBar = [UINavigationBar appearance]; // 拿到导航栏的外观
    [navBar setBackgroundImage:[UIImage imageNamed:@"NavBar64"] forBarMetrics:UIBarMetricsDefault];
    
    [navBar setTintColor:[UIColor whiteColor]];
    
    NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
    attrs[UITextAttributeTextColor] = [UIColor whiteColor];
    attrs[UITextAttfile:///Users/dsw/Desktop/屏幕快照%202015-07-08%2020.48.02.pngributeTextShadowColor] = [UIColor blackColor];
[navBar setTitleTextAttributes:attrs]; // 设置导航栏属性,传入的是字典



5、得到设备的信息

 例如:[UIDevice currentDevice].systemVersion  取得设备的系统版本号

 

6、如果点击某个按钮跳转到另一个页面,需要修改系统原来的样式,则方法是:拦截 push 方法,在里面进行设置,即:自己定义一个导航控制器并继承自系统自带的导航控制器

android 禁止底部系统导航 手机系统导航栏禁用_android 禁止底部系统导航

,重写这个 push 方法,能拦截所有的 push 操作

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    // 注意:这里要再 super 之前调用,不然 super 执行之后,控制器已经跳转了,看不到隐藏 tabbar 的效果
    viewController.hidesBottomBarWhenPushed = YES;
    [super pushViewController:viewController animated:YES];
}


延伸:只要系统的方法不够用,就可以利用这种方法(继承、重写),这样可以修改任何系统自带的功能。注意这种思想。

 

7、所有的控制器中,都由一个方法叫

+ (void)initialize

这个方法只在控制器加载的第一次会调用,想创建导航控制器的适合,就可以把一些全局设置放在这个方法里面,不用每次创建都重新设置一遍。

 

8、像 IOS6系统有时候程序启动的时候,需要隐藏状态栏,等到程序启动完毕之后在显示状态栏,这时候设置如下:

  1.

android 禁止底部系统导航 手机系统导航栏禁用_xcode_02

,把里面的 Hide settus bar 勾选,这样在启动的时候状态栏就会消失

  2.等到程序启动完毕之后,在

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  中设置为:  application.statusBarHidden = NO;

 即可

 

9、程序图标加载完之后,默认会有一层发光效果,去掉方法:

android 禁止底部系统导航 手机系统导航栏禁用_程序启动_03

中把划线的地方打钩就可以了

 

但是在 Xcode4中,需要在 plist 文件中添加Icon already includes gloss effects 并且把属性设置为 YES 这样来设置