和任何新的iOS版本一样,有着一堆堆的新技巧和修改需要处理.有些我并不会立即遇到,所以这篇文章并不是一套完整技巧汇总.只是分享一些我碰巧遇到的问题.

如果你有任何更多的发现,可以发Twitter或者email给我.我将免费一起汇入这篇文章.

Stealing The Blur

不幸的是,苹果并没有给你在views上直接使用模糊效果的方法.不过有一些聪明人采取修改UIToolbar的layer来做到iOS模糊. iOS-blur

你如果是想使用黑色风格的模糊,设置这个toolbar的barstyle为UIBarStyleBlack.

Tinting The Navbar

设置导航条的颜色,但是没有效果?原来还有另外一个设置色调的属性叫:'barTintColor'.

  self.navigationController.navigationBar.barTintColor = [UIColor blueColor];

Nil Those Delegates

在 iOS7 上你需要在你controllers销毁之前,将 delegates and datasources 设置成 nil.否则你会有很多让人讨厌的' 'message sent to deallocated instance''异常

  - (void)dealloc
{
self.tableView.delegate = nil;
self.tableView.dataSource = nil;
}

Hide The Status Bar

你是不是不喜欢透明的状态栏浮在内容的上面?是的,我也不喜欢.

标准的说法是不要在做任何诡计.

  [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade]

在Info.plist里面设置UIViewControllerBasedStatusBarAppearance 为 YES,然后添加这个到你的controller里面

  - (BOOL)prefersStatusBarHidden
{
return YES;
}

Changing The Status Bar Style Per Controller

在Info.plist里面设置UIViewControllerBasedStatusBarAppearance 为 YES,然后覆写:

  - (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}

Custom Back Button And Swipe Back

我发现唯一好的办法重写back按钮就是设置leftBarButtonItem,但是这样swipe 的手势又有问题了.幸运的是有一个非常简单的办法来修复

  self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]
initWithImage:img
style:UIBarButtonItemStylePlain
target:self
action:@selector(onBack:)];
self.navigationController.interactivePopGestureRecognizer.delegate = (id<UIGestureRecognizerDelegate>)self;

Full Screen Content Transition

当内容全屏展示的时候(比如一个展开的视频),并且这时用户旋转方向,然后再关闭.你常常就会得到一个异常.这个情况就需要拿出preferredInterfaceOrientationForPresentation方法了.

     - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationPortrait;
}

Checking For iOS 7

这不是什么新鲜方法.但是如果你只想在iOS7下执行可以这样写

     if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
...
}

判断iOS7以下的话可以这样:

 NSUInteger DeviceSystemMajorVersion();

 NSUInteger DeviceSystemMajorVersion() {

         static NSUInteger _deviceSystemMajorVersion = -;

         static dispatch_once_t onceToken;

         dispatch_once(&onceToken, ^{
_deviceSystemMajorVersion = [[[[[UIDevice currentDevice] systemVersion] componentsSeparatedByString:@"."] objectAtIndex:] intValue];
});
return _deviceSystemMajorVersion;
} #define IOS_VERSION_LOW_7 (DeviceSystemMajorVersion() < 7)

My Scroll View Is Moving!

iOS7 默认偏移你的scrollview 64px(20px的状态栏,44px的导航栏)

不过你依然可以禁用这个

   self.automaticallyAdjustsScrollViewInsets = NO;

CocoaPods在iOS5有问题的

可以点击这个链接

最新文章

  1. PHP加速处理插件 Zend Optimizer,Zend Guard Loader 和 Zend Opcache 区别
  2. ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务解决
  3. Redis_DataType
  4. linux常用操作指令
  5. Android基础环境搭建
  6. visual studio 自带单元测试demo
  7. smarty框架块函数
  8. app图标和启动页设置
  9. c# 接口代码实例
  10. OpenSuSE zypper OpenStack Icehouse repoAdd
  11. C++ Primer 读书笔记: 第9章 顺序容器
  12. HTML学习(七)表格
  13. Struts2框架学习(三) 数据处理
  14. Hadoop1.0.3安装部署
  15. 深度学习之前期准备工作--python,pip,numpy,tensorflow安装
  16. SQL 在OPENQUERY中使用参数,并作为表查询对象/不允许使用远程表值函数调用。
  17. Codeforces Round #415 (Div. 2)C
  18. Linux内核分析7
  19. flume 1.4 设置FLUME_CONF_DIR没用
  20. C语言Windows程序开发—TextOut函数介绍【第02天】

热门文章

  1. MongoDB快速入门学习笔记3 MongoDB的文档插入操作
  2. 【LeetCode】Search Insert Position(搜索插入位置)
  3. 贪吃蛇—C—基于easyx图形库(下):从画图程序到贪吃蛇【自带穿墙术】
  4. OgnlContext 源码
  5. [转]jQuery中attr() 和 val() 的区别
  6. (Mac)centos 6.5安装 JDK+mysql
  7. windows通过NSF挂载centos目录
  8. HDU 5322 Hope ——NTT 分治 递推
  9. Position 属性的学习理解
  10. jquery 实践操作:attr()方法