你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS10開辟和Xcode 8新特征及罕見成績解析

iOS10開辟和Xcode 8新特征及罕見成績解析

編輯:IOS開發綜合

IOS 10 開辟此次更新重要表示在以下這幾個方面。

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 中的資本文件加載出來前往一個url 
NSURL *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.設置每個掌握器上的
tabbar oneVc.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 動畫的類,具有以下特色:

可中止性

可擦除

可反轉性

豐碩的動畫時光掌握功效

官方文檔: Snip20160618_30.pngSnip20160618_31.png

焦點代碼:

#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的frame 
self.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];
}

後果圖: 222.gif

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:nilcompletionHandler:

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添加一個描寫。 ssss.png 視頻播放 須要在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 而且向用戶解釋.fff.png

11.Xcode7 和Xcode 8項目中的xib兼容成績

在Xcode8上翻開項目要當心,特別是關於xib進程,在更改後可不要隨便點保留,不然當你回頭用Xcode7翻開不時發明報錯了,Xcode保留的xib在xcode7上是辨認不了的!

12.ApplePay(蘋果付出)

ApplePay更新內容:

可用於 SFSafariViewController

可用於沒有UI的extensions中

在 iMessage 運用中也支撐 ApplePay

13.CoreData晉升了並發拜訪機能

14.刷新控件(UIRefresh Control)

iOS體系自帶的刷新控件支撐一切的 UIScrollView 和其子類,好比說 UICollectionView,UITableView。

焦點代碼:

#import <Foundation/Foundation.h>
@class UIRefreshControl;NS_CLASS_AVAILABLE_IOS(10_0)
@protocol UIRefreshControlHosting <NSObject>
@property (nonatomic, strong, nullable) UIRefreshControl *refreshControl __TVOS_PROHIBITED;
@end

Xcode 8 新特征(正在整頓..)

xcode8 罕見成績:

1.更新Xcode 8 卡在“正在裝置...”:

筆者持續重裝了三次都無窮卡在“還有5分鐘...”,終究采取最粗魯直接的方法,Finder --> 運用法式,卸載Xcode 7.3 並在AppStore中直接裝置Xcode 8 。

2.掌握台打印過剩打印

貌似是xcode自帶的項目追蹤信息,每次項目運轉今後都邑在掌握台打印以下信息

禁用該Xcode Debug Console辦法:Product --> Scheme --> Edit Scheme 在翻開的窗口當選擇run 在 Environment Variables中添加OS_ACTIVITY_MODE對應的value為disable後close加入便可。

3.正文快捷鍵(command + /)掉效

這個是由於為了蘋果處理xcode ghost,把插件屏障懂得決辦法,敕令運轉:

$ sudo /usr/libexec/xpccachectl

留意:然後必需重啟電腦後失效

【iOS10開辟和Xcode 8新特征及罕見成績解析】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved