亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS10開發和Xcode 8新特性及常見問題解析

2020-07-26 03:11:42
字體:
來源:轉載
供稿:網友

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

注意:然后必須重啟電腦后生效

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品日韩欧美| 久久国产精品亚洲| 亚洲国产又黄又爽女人高潮的| 国产精品久久久久久久久久东京| 国产成人小视频在线观看| 亚洲九九九在线观看| 欧美成人午夜剧场免费观看| 欧美色欧美亚洲高清在线视频| 2019日本中文字幕| 韩国三级电影久久久久久| 久久天天躁狠狠躁老女人| 国产成人午夜视频网址| 久久久在线视频| 久久久国产视频| 精品动漫一区二区三区| 欧美一乱一性一交一视频| 欧美夫妻性生活视频| 国产精品久久久久久久久久尿| 国产亚洲精品美女久久久久| 高清一区二区三区日本久| 亚洲国产精品国自产拍av秋霞| 亚洲成人精品久久| 日本精品久久中文字幕佐佐木| 日韩毛片中文字幕| 欧美激情性做爰免费视频| 国产欧美精品va在线观看| 久久久精品一区二区三区| 国产日韩换脸av一区在线观看| 久久精品国产一区| 国产精品第七影院| zzijzzij亚洲日本成熟少妇| 日韩精品久久久久| 性色av一区二区三区红粉影视| 亚洲女人被黑人巨大进入| 欧美成人合集magnet| 欧美日韩精品在线观看| 亚洲成av人乱码色午夜| 精品一区二区三区四区| 亚洲影视九九影院在线观看| 欧美在线视频a| 亚洲aⅴ日韩av电影在线观看| 久久这里有精品视频| 成人久久一区二区三区| 17婷婷久久www| 日韩欧美国产激情| 秋霞成人午夜鲁丝一区二区三区| 欧美激情影音先锋| 国产精品99久久99久久久二8| 亚洲国产精品网站| 精品久久在线播放| 欧美在线视频一区二区| 欧美成人sm免费视频| 亚洲一区二区在线播放| 国产精品亚洲自拍| 成人黄色av免费在线观看| 中文字幕无线精品亚洲乱码一区| 亚洲色图色老头| 欧美成人网在线| 福利视频第一区| 国产精品高清在线观看| 欧美日韩中文字幕在线| 高清在线视频日韩欧美| 欧美精品第一页在线播放| 高清亚洲成在人网站天堂| 国产精品www色诱视频| 久久久久久999| 久久99精品国产99久久6尤物| 国产综合久久久久| 尤物九九久久国产精品的特点| 国产精品免费久久久久影院| 九九热这里只有精品6| 成人精品aaaa网站| 亚洲精品小视频在线观看| 97人洗澡人人免费公开视频碰碰碰| 欧美丰满少妇xxxxx做受| 国产精品国产自产拍高清av水多| 欧美在线一级va免费观看| 欧美在线视频观看免费网站| 欧美伊久线香蕉线新在线| 中文字幕一区二区三区电影| 日韩精品免费综合视频在线播放| 欧美中文在线观看国产| 国产精品欧美一区二区三区奶水| 欧美重口另类videos人妖| 国内久久久精品| 国产婷婷色综合av蜜臀av| 亚洲人成电影网站| 国产成人精品国内自产拍免费看| 国内精品久久久久| 国产精品久久久久免费a∨大胸| 久久精品视频在线播放| 亚洲女人被黑人巨大进入al| 国产精品69久久久久| 亚洲三级免费看| 国产精品麻豆va在线播放| 亚洲精品福利免费在线观看| 亚洲人线精品午夜| 九色91av视频| 粗暴蹂躏中文一区二区三区| 综合136福利视频在线| 日韩亚洲精品电影| 亚洲欧美中文字幕在线一区| 国产亚洲精品久久久久动| 久热精品视频在线免费观看| 91av在线网站| 欧美一级电影在线| 91精品国产高清| 色悠久久久久综合先锋影音下载| 欧美视频在线免费看| 91免费观看网站| 久久综合88中文色鬼| 欧美激情视频网| 亚洲欧美日韩国产中文| 亚洲国产福利在线| 国产精品久久二区| 精品国产一区二区三区久久久狼| 久久国产精品影视| 久国内精品在线| 亚洲国产成人爱av在线播放| 国产婷婷色综合av蜜臀av| 国产成人一区二| 91精品视频网站| 中文字幕亚洲欧美日韩高清| 亚洲最大的免费| 国产成人精品在线播放| 日韩专区在线播放| 成人激情免费在线| 91在线无精精品一区二区| 97婷婷大伊香蕉精品视频| 久久伊人精品视频| 亚洲国产精品va在线观看黑人| 成人免费视频xnxx.com| 久久亚洲国产精品成人av秋霞| 国产精品久久91| 国产日韩欧美夫妻视频在线观看| 深夜精品寂寞黄网站在线观看| 日韩成人激情影院| 日韩中文视频免费在线观看| 美女撒尿一区二区三区| 宅男66日本亚洲欧美视频| 日韩精品在线免费| 亚洲欧洲中文天堂| 亚洲人成电影网站色…| 俺去了亚洲欧美日韩| 日韩精品一区二区三区第95| 日韩av在线免费观看一区| 欧美视频不卡中文| 国产在线观看91精品一区| 国产精品男人的天堂| 精品呦交小u女在线| 日韩欧美在线字幕| 国产91ⅴ在线精品免费观看| 亚洲免费视频在线观看| 中文字幕亚洲在线| 夜夜嗨av色综合久久久综合网| 欧美亚洲另类视频| 美女黄色丝袜一区| 久久精品视频99| 97国产suv精品一区二区62| 欧亚精品中文字幕| 国色天香2019中文字幕在线观看| 91综合免费在线| 亚洲国产婷婷香蕉久久久久久| 国产色综合天天综合网|