1.语音识别

苹果官方在文档中新增了API   Speech,那么在以前我们处理语音识别非常的繁琐甚至很多时候可能需要借助于第三方框架处理,那么苹果推出了这个后,我们以后处理起来就非常的方便了,speech具有以下特点:

可以实现连续的语音识别

可以对语 音文件或者语音流进行识别

最佳化自由格式的听写(可理解为多语言支持)和搜索式的字符串

官方文档:

核心代码:

#import <Speech/Speech.h>//1.创建本地化标识符NSLocale *local =[[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];//2.创建一个语音识别对象SFSpeechRecognizer *sf =[[SFSpeechRecognizer alloc] initWithLocale:local];//3.将bundle 中的资源文件加载出来返回一个urlNSURL *url =[[NSBundle mainBundle] URLForResource:@"游子吟.mp3" withExtension:nil];//4.将资源包中获取的url 传递给 request 对象SFSpeechURLRecognitionRequest *res =[[SFSpeechURLRecognitionRequest alloc] initWithURL:url];//5.发送一个请求[sf recognitionTaskWithRequest:res resultHandler:^(SFSpeechRecognitionResult * _Nullable result, NSError * _Nullable error) {if (error!=nil) {NSLog(@"语音识别解析失败,%@",error);}else{//解析正确NSLog(@"---%@",result.bestTranscription.formattedString);}}];

/**

语音识别同样的需要真机进行测试 ,因为需要硬件的支持,还需要访问权限

***/

2.UITabBarController 中的改进

在iOS 10之前,tabBarItem上的文字颜色,默认是 蓝色,上面的新消息提醒数字badge 默认是红色的,未选中的TabBarItem的文字颜色默认是黑色的,我们修改的话,也只能修改它的默认颜色 ,其它的就不能进行个性化定制,使用起来非常的不方便,iOS10之后我们可以轻松个性化定制了。

核心代码:

//1.创建出三个UIViewcontroller 对象OneViewController *oneVc =[[OneViewController alloc] init];//2.设置每一个控制器上的tabbaroneVc.view.backgroundColor =[UIColor redColor];//设置标题oneVc.tabBarItem.title = @"首页";TwoViewController *twovC =[[TwoViewController alloc] init];twovC.view.backgroundColor =[UIColor purpleColor];//设置标题twovC.tabBarItem.title = @"圈子";ThreeViewController *threVC =[[ThreeViewController alloc] init];threVC.view.backgroundColor =[UIColor blueColor];//设置标题threVC.tabBarItem.title = @"社交";//2.将创建好的三个普通控制器加入到tabbarController 控制器中[self addChildViewController:oneVc];[self addChildViewController:twovC];[self addChildViewController:threVC];//改变tabbar 上面的文字默认颜色oneVc.tabBarController.tabBar.tintColor =[UIColor yellowColor];twovC.tabBarController.tabBar.tintColor =[UIColor yellowColor];threVC.tabBarController.tabBar.tintColor =[UIColor yellowColor];//使用iOS 10新推出的 修改 tabbar 未选中的tintColor 颜色//这一句代码将 tabbar 未选中的时候的默认色- 黑色改为红色oneVc.tabBarController.tabBar.unselectedItemTintColor =[UIColor redColor];//tabbarItem 中属性//数字提醒的颜色  在iOS 10之前的版本默认都是数字提醒都是红色oneVc.tabBarItem.badgeColor =[UIColor orangeColor];oneVc.tabBarItem.badgeValue =@"90";//将tabBarItem 中数字提醒默认的白色改掉  使用富文本修改[oneVc.tabBarItem setBadgeTextAttributes:@{NSForegroundColorAttributeName:[UIColor blackColor]} forState:UIControlStateNormal];

3.iOS10.0中字体跟随系统设置变化大小

在以前如果说我们想改变APP中程序的字体大小,我们只能自定义字体或者使用runtime进行处理,或者都得设置UIFont,非常的不妨百年,从iOS 10苹果官方允许我们自定义设置

核心代码:

/*在iOS 10当中,当咱们用户将手机的字体大小进行了设置调整之后,那么app中设置相关代码字体也会跟着一起变化 ,支持常见一些字体UI控件 比如uilabel uibutton**/[super viewDidLoad];//设置字体的改变大小self.labels.font =[UIFont preferredFontForTextStyle:UIFontTextStyleBody];//允许改变/*苹果官方明确的告诉你必须和  preferredFontForTextStyle 或者preferredFontForTextStyle:(NSString *)style compatibleWithTraitCollection 进行结合使用注意这里不支持模拟器操作**/self.labels.adjustsFontForContentSizeCategory = YES;

4. UIViewPropertyAnimator属性动画器

那么在iOS 10之前,我们使用UIView 做动画效果或者自定义一些layer 的动画,如果开始了,一般无法进行停止操作更不能暂停操作,而且一些非常复杂的动画处理也比较麻烦,但是在iOS10,苹果退出了一个全新的API  UIViewPropertyAnimator,可供我们处理动画操作

UIViewPropertyAnimator 是 iOS 10 中新增的一个执行 View 动画的类,具有以下特点:

可中断性

可擦除

可反转性

丰富的动画时间控制功能

官方文档:

核心代码:

#import "ViewController.h"
@interface ViewController ()
@property(nonatomic,strong)UIView *myView;
@property(nonatomic,strong)UIViewPropertyAnimator *myViewPro;
@end
@implementation ViewController
- (void)viewDidLoad {[super viewDidLoad];//1.创建一个View对象UIView *Views =[[UIView alloc] initWithFrame:CGRectMake(50, 50, 100, 100)];Views.backgroundColor =[UIColor yellowColor];[self.view addSubview:Views];//2.创建一个外部的变量进行引用self.myView = Views;//3.创建一个view 动画器UIViewPropertyAnimator *viewPro  =[UIViewPropertyAnimator runningPropertyAnimatorWithDuration:1.0 delay:30.0 options:UIViewAnimationOptionCurveLinear animations:^{//使用View动画器修改View的frameself.myView.frame = CGRectMake(230, 230, 130, 130);} completion:nil];self.myViewPro = viewPro;
}
//结束
- (IBAction)stop:(id)sender {// YES 和NO 适用于设置当前这个属性动画器是否可以继续使用[self.myViewPro stopAnimation:YES];
}
//继续
- (IBAction)continued:(id)sender {//UITimingCurveProvider/**@property(nullable, nonatomic, readonly) UICubicTimingParameters *cubicTimingParameters;@property(nullable, nonatomic, readonly) UISpringTimingParameters *springTimingParameters;**///设置弹簧效果 DampingRatio取值范围是 0-1//这个取值 决定弹簧抖动效果 的大小 ,越往  0 靠近那么就越明显UISpringTimingParameters *sp =[[UISpringTimingParameters alloc] initWithDampingRatio:0.01];//设置一个动画的效果
//    UICubicTimingParameters *cub =[[UICubicTimingParameters alloc] initWithAnimationCurve:UIViewAnimationCurveEaseInOut];//durationFactor  给一个默认值 1就可以[self.myViewPro continueAnimationWithTimingParameters:sp durationFactor:1.0];
}
//暂停
- (IBAction)puase:(id)sender {[self.myViewPro pauseAnimation];
}
//开始
- (IBAction)start:(id)sender {[self.myViewPro startAnimation];
}

5.UIColor 新增方法

在iOS10之前,UIColor中设置颜色只能通过RGB 来表示,在iOS原生还不支持#16进制写法,还得自己写分类去处理,我们知道RGB表示的颜色是优先的,而且也是不精准的,那么在iOS10中,苹果官方新增了colorWithDisplayP3Red方法

核心代码:

+ (
UIColor*)colorWithDisplayP3Red:(
CGFloat
)displayP3Red green:(
CGFloat
)green blue:(
CGFloat
)blue alpha:(
CGFloat
)alpha
NS_AVAILABLE_IOS
(
10
_0);

6.UIApplication对象中openUrl被废弃

在iOS 10.0以前的年代,我们要想使用应用程序去打开一个网页或者进行跳转,直接使用[[UIApplication sharedApplication] openURL 方法就可以了,但是在iOS 10 已经被废弃了,因为使用这种方式,处理的结果我们不能拦截到也不能获取到,对于开发是非常不利的,在iOS 10全新的退出了  [[UIApplication sharedApplication] openURL:nil options:nil completionHandler:nil];有一个成功的回调block 可以进行监视。

苹果官方解释:

//说明在iOS 10.0中openUrl方法已经废弃了 改为openURL:nil options:nil completionHandler:^(BOOL success/*// Options are specified in the section below for openURL options. An empty options dictionary will result in the same// behavior as the older openURL call, aside from the fact that this is asynchronous and calls the completion handler rather// than returning a result.// The completion handler is called on the main queue.

关键代码:

[[UIApplication sharedApplication] openURL:nil options:nil completionHandler:^(BOOL success) {}];

当然除了以上的这些,其它的还有很多,比如下面这些

6. SiriKit

在 iOS 10 里面开发者可以使用 Siri SDK,毫无疑问这也是 iOS 10 最重要的 SDK。从此开发者可以使用原生API提供语音搜索、语音转文字消息甚至更多常见语音功能。

7.  User Notifications

这个 API 让你可以处理本地或远程的用户通知,并且可以基于某个条件,例如时间或者地理位置。这个异常强大,貌似可以拦截并替换自己 app 发下来的 payload,并且在之前版本SDK的本地通知框架已经被废弃了,在上一篇帖子有所讲到以及代码都有展示。

8.CallKit

继2014年苹果推出VoIP证书后,这次VoIP 接口的开放,以及一个全新的 App Extension,简直是VOIP的福音,可见苹果对VOIP的重视。callkit框架 VoIP应用程序集成与iPhone的用户界面,给用户一个很棒的经历。用这个框架来让用户查看和接听电话的锁屏和VoIP管理联系人电话在手机APP的收藏夹和历史的观点。

callkit还介绍了应用程序的扩展,使呼叫阻塞和来电识别。您可以创建一个应用程序扩展,可以将一个电话号码与一个名称联系起来,或者告诉系统当一个号码应该被阻止。

9.第三方键盘的改进

非常非常重要,第三方键盘一直都不能很方便的拥有长按地球键的功能,现在有了。通过 handleInputModeListFromView:withEvent: 可以弹出系统键盘列表。同时使用 documentInputMode 可以检测输入上下文中的语言,你可以对输入方式进行一些类似于对齐方式的调整。

10.iOS10 对隐私权限的管理

比如访问的摄像头、麦克风等硬件,都需要提前请求应用权限、允许后才可以使用,或者现在要提前声明,虽然以往要求不严格。在iOS10中比如遇到崩溃,日志:

崩溃日志:

***This app has crashed because it attempted to access privacy-sensitive data without a usage description.  The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.

你需要在info.plist文件 添加一个“NSContactsUsageDescription ”的Key,Value添加一个描述。

视频播放 需要在info.Plist中配置

官方解释:This app has crashed because it attempted to access privacy-sensitive data without a usage description.  The app's Info.plist must contain an NSAppleMusicUsageDescription key with a string value explaining to the user how the app uses this data.

访问用户的隐私数据,并且没有向用户说明,必须在plist(info.plist)中配置这个key  NSAppleMusicUsageDescription 并且向用户说明.

11.Xcode7 和Xcode 8项目中的xib兼容问题

在Xcode8上打开项目要小心,尤其是对于xib过程,在变动后可不要随意点保存,否则当你回头用Xcode7打开时时发现报错了,Xcode保存的xib在xcode7上是识别不了的!

12.APPlePlay(苹果支付)

可用于 SFSafariViewController

可用于没有UI的extensions中

在 iMessage 应用中也支持 ApplePay

13.CoreData提升了并发访问性能

14.刷新控件(UIRefresh Control)

iOS系统自带的刷新控件支持所有的 UIScrollView 以及其子类,比如说 UICollectionView,UITableView。

核心代码:

//
//  UIRefreshControlHosting.h
//  UIKit
//
//  Copyright 2016 Apple Inc. All rights reserved.
//
#import <Foundation/Foundation.h>
@class UIRefreshControl;
NS_CLASS_AVAILABLE_IOS(10_0) @protocol UIRefreshControlHosting <NSObject>
@property (nonatomic, strong, nullable) UIRefreshControl *refreshControl __TVOS_PROHIBITED;
@end

15.GCD多线程支持创建私有队列

iOS 10 新特性相关推荐

  1. 玩转iOS开发:iOS 10 新特性《Siri Kit》

    文章分享至我的个人技术博客: https://cainluo.github.io/14977885999456.html Siri 众所周知Siri是苹果爸爸内置在iOS系统的一个语音助手, 自从在2 ...

  2. iOS 10 新特性 大汇总 及iOS 10 的一些小问题和 xcode 8 的新版本小问题

    iOS 10正式版是很值得升级的,特别是那些不打算购买iPhone 7的老用户,毕竟新系统在体验.流畅性上都做了一些升级. 1.开放电话接口 支持垃圾电话提醒 对于使用iPhone的国人来说,这个功能 ...

  3. 玩转iOS开发:iOS 10 新特性《Thread Sanitizer》

    文章分享至我的个人技术博客: https://cainluo.github.io/14971830645415.html Thread Sanitizer(TSan) Thread Sanitizer ...

  4. 玩转iOS开发:iOS 10 新特性《Siri Kit Intents Extension UI》

    文章分享至我的个人技术博客: https://cainluo.github.io/14978567639492.html Siri Kit Intents Extension UI 之前我们讲了Sir ...

  5. [IOS]IOS10新特性以及适配点(转)

    iOS 10 新特性以及适配点 SiriKit 所有第三方应用都可以用Siri,支持音频.视频.消息发送接收.搜索照片.预订行程.管理锻炼等 Proactive Suggestions 系统预先建议 ...

  6. 十分钟接入iOS 12新特性——Siri Shortcuts

    前言 Xcode 10已经正式发布,开发者可以接入Siri Shortcuts的iOS 12新特性. WWDC2018的Introduction to Siri Shortcuts Session介绍 ...

  7. iOS 11新特性与适配

    iOS 11新特性与适配 1. UIView变化 1.1. 更加方便的RTL边距设置 1.2. 安全区域 2. UIViewController变化 2.1. 废除API 2.1.1. `automa ...

  8. iOS 9应用开发教程之iOS 9新特性

    iOS 9应用开发教程之iOS 9新特性 iOS 9开发概述 iOS 9是目前苹果公司用于苹果手机和苹果平板电脑的最新的操作系统.该操作系统于2015年6月8号(美国时间)被发布.本章将主要讲解iOS ...

  9. C# 10 新特性 —— 补充篇

    C# 10 新特性 -- 补充篇 Intro 前面已经写了几篇文章介绍 C# 10 新特性的文章,还有一些小的更新 Constant interpolated strings 在之前的版本中,如果想要 ...

  10. C# 10 新特性 —— 插值字符串优化

    C# 10 新特性 -- 插值字符串优化 Intro 字符串应该是我们平时使用的最多的一个类型,从 C# 6 开始我们开始支持了插值字符串,使得我们可以更方便的进行字符串的操作,现在很多分析器也推荐我 ...

最新文章

  1. 机器学习(15)精确率召回率F1-score(查看癌症预测结果的精确率、召回率)
  2. 高中毕业就想转行当 Coder,程序员的学历真的不重要么?
  3. A Simple Math Problem HDU - 5974
  4. mongodb,redis,mysql 简要对比
  5. Software develop Model
  6. display方法php,ThinkPHP 模板输出 display 方法
  7. digital ocean 内存不足时增加swap文件的方法
  8. mysql 外键详解_mysql 中的外键key值的详解
  9. 简单html源码_HTML 文本格式化
  10. 【GlobalMapper精品教程】008:如何根据指定区域(shp、kml、cad)下载卫星影像?
  11. 地图经纬度转换(百度,高德,谷歌,Leaflet)
  12. matlab的kron函数(kronecker乘积)
  13. Unity跳一跳小游戏简单代码
  14. Excel IRR函数告诉你信用卡分期、贷款的实际利率
  15. Contrastive Test-Time Adaptation
  16. android获取Bitmap对象,获取图片宽高
  17. 被告知孩子学校偷钱后
  18. 天玑9000和骁龙888plus哪个好
  19. qq计算机无法启动程序丢失MS,Win10无法运行QQ怎么回事 QQ提示缺少MSVCR100.dll解决方法...
  20. 骁龙865与鸿蒙900,天玑2000与骁龙865哪个好_天玑2000与骁龙865对比

热门文章

  1. 2021微信大数据挑战赛正式启动报名!
  2. mac怎么修改hosts文件
  3. Flutter Engine线程管理与Dart Isolate机制
  4. 人工智能正在重塑人力资源的7种方式
  5. java 替换空白字符串
  6. MarkDownPad:An error occured with the HTML rendering componet.
  7. OpenStack虚拟机rebuild和evacuate差异梳理
  8. 小菜openstack nova 源码学习之 evacuate
  9. BurpSuite使用详解(三)Spider功能
  10. 判断手机号是否是素数