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 方法,在里面进行设置,即:自己定义一个导航控制器并继承自系统自带的导航控制器
,重写这个 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.
,把里面的 Hide settus bar 勾选,这样在启动的时候状态栏就会消失
2.等到程序启动完毕之后,在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 中设置为: application.statusBarHidden = NO;
即可
9、程序图标加载完之后,默认会有一层发光效果,去掉方法:
中把划线的地方打钩就可以了
但是在 Xcode4中,需要在 plist 文件中添加Icon already includes gloss effects 并且把属性设置为 YES 这样来设置