iOS7开发技巧
和任何新的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有问题的
最新文章
- PHP加速处理插件 Zend Optimizer,Zend Guard Loader 和 Zend Opcache 区别
- ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务解决
- Redis_DataType
- linux常用操作指令
- Android基础环境搭建
- visual studio 自带单元测试demo
- smarty框架块函数
- app图标和启动页设置
- c# 接口代码实例
- OpenSuSE zypper OpenStack Icehouse repoAdd
- C++ Primer 读书笔记: 第9章 顺序容器
- HTML学习(七)表格
- Struts2框架学习(三) 数据处理
- Hadoop1.0.3安装部署
- 深度学习之前期准备工作--python,pip,numpy,tensorflow安装
- SQL 在OPENQUERY中使用参数,并作为表查询对象/不允许使用远程表值函数调用。
- Codeforces Round #415 (Div. 2)C
- Linux内核分析7
- flume 1.4 设置FLUME_CONF_DIR没用
- C语言Windows程序开发—TextOut函数介绍【第02天】
热门文章
- MongoDB快速入门学习笔记3 MongoDB的文档插入操作
- 【LeetCode】Search Insert Position(搜索插入位置)
- 贪吃蛇—C—基于easyx图形库(下):从画图程序到贪吃蛇【自带穿墙术】
- OgnlContext 源码
- [转]jQuery中attr() 和 val() 的区别
- (Mac)centos 6.5安装 JDK+mysql
- windows通过NSF挂载centos目录
- HDU 5322 Hope ——NTT 分治 递推
- Position 属性的学习理解
- jquery 实践操作:attr()方法