多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > 3D Touch

3D Touch

來源:程序員人生   發布時間:2016-07-28 09:01:36 閱讀次數:2618次

3D Touch開發初體驗

3D Touch功能的開發難度其實不大,但是由于該功能需要有硬件支持,并且在摹擬器上沒法體驗,所以阻擋了1大批開發者的探索腳步。不過在計算機界歷來沒有能難倒程序員的問題,本文首先將介紹如何使用3D Touch的Home Screen Quick Actions功能,然后介紹如何在摹擬器中使用3D Touch。

3D Touch開發

3D Touch功能概覽

3D Touch有2大模塊:

1、Home Screen Quick Actions

通過主屏幕的利用Icon,我們可以用3D Touch呼出1個菜單,進行快速定位利用功能模塊相干功能的開發,。如微信、京東的App,本文也將重點介紹這項開發技術。 


微信的快速入口

京東的快速入口

2、Force Properties

iOS9為我們提供了1個新的交互參數:力度。我們可以檢測某1交互的力度值,來做相應的交互處理。例如,我們可以通過力度來控制快進的快慢,音量增加的快慢等。

Home Screen Quick Actions開發指南

3D Touch快速入口標簽有兩種添加方式:1種是靜態添加,在工程中的info.plist文件中添加相干項目。通過這類方式添加的標簽,在app第1次運行前,就能夠喚出這些標簽;另外一種是動態添加,通過代碼給App添加快速入口。這類方式添加的標簽,第1次運行App前是看不到這些標簽的,必須先運行1次App,以后就能夠喚出這些標簽了。

靜態添加入口標簽

靜態添加入口標簽不需要寫代碼,只需要在info.plist文件中添加相干功能設置便可。不過由于沒有語句提示,所以我們只能1個字母1個字母的去添加,這1點不是很友好。

我們需要在info.plist中添加以下信息:


info.plist中添加的內容

分析1下添加的項目分別代表甚么意思。

首先是UIApplicationShortcutItems,他是1個數組類型,數組中的每個元素表示1個入口標簽。

然后是Item0,這是數組中的1個元素,字典類型。在這個字典中配置各個標簽的相干屬性。

字段名 功能 是不是必須 備注
UIApplicationShortcutItemType 這個鍵值設置1個快捷通道類型的字符串 必有項 我們可以監聽該項的值來判斷用戶是從哪個標簽進入App的,該字段的值可以為空。
UIApplicationShortcutItemTitle 這個鍵值設置標簽的標題 必有項 我們可以監聽該項的值來判斷用戶是從哪個標簽進入App的
UIApplicationShortcutItemSubtitle 設置標簽的副標題 可選項  
UIApplicationShortcutItemIconType 設置標簽的圖標樣式,系統提供了29中樣式的圖標,但大部份只能在9.1的系統上使用,只有少數可以在9.0的系統中使用,這1部份會在后邊詳細介紹 可選項  
UIApplicationShortcutItemIconFile 設置自定義標簽圖片文件的路徑 可選項  
UIApplicationShortcutItemUserInfo 設置用戶信息,是1個字典類型,可以用來傳值 可選項

依照如上截圖配置info.plist文件后,我們運行程序,然后按壓icon,出現的是以下效果:


靜態添加的標簽

這是在UIApplicationShortcutItems中添加了1個Item的情況,只添加了1個標簽,如果想添加多個靜態標簽,依樣畫葫蘆出多個Item便可。

動態添加入口標簽

這類方法需要我們寫代碼來添加,首先來認識3個類:

類名 功能描寫
UIApplicationShortcutItem 創建標簽的類
UIMutableApplicationShortcutItem 創建可變標簽的類
UIApplicationShortcutIcon 創建標簽ICON的類

我們創建1個新工程,然后在工程中根視圖的viewDidLoad方法中添加以下代碼:

// 創建標簽的ICON圖標。 UIApplicationShortcutIcon *icon = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeAdd]; // 創建1個標簽,并配置相干屬性。 UIApplicationShortcutItem *item = [[UIApplicationShortcutItem alloc] initWithType:@"two" localizedTitle:@"么么噠" localizedSubtitle:@"愛你呦" icon:icon userInfo:nil]; // 將標簽添加進Application的shortcutItems中。 [UIApplication sharedApplication].shortcutItems = @[item];

上邊的代碼,第1步創建出標簽的入口,這1步的配置與靜態添加標簽中的UIApplicationShortcutItemIconType目的1樣。系統給我們提供了以下樣式的標簽:

typedef NS_ENUM(NSInteger, UIApplicationShortcutIconType) { UIApplicationShortcutIconTypeCompose, UIApplicationShortcutIconTypePlay, UIApplicationShortcutIconTypePause, UIApplicationShortcutIconTypeAdd, UIApplicationShortcutIconTypeLocation, UIApplicationShortcutIconTypeSearch, UIApplicationShortcutIconTypeShare, UIApplicationShortcutIconTypeProhibit NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeContact NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeHome NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeMarkLocation NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeFavorite NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeLove NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeCloud NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeInvitation NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeConfirmation NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeMail NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeMessage NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeDate NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeTime NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeCapturePhoto NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeCaptureVideo NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeTask NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeTaskCompleted NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeAlarm NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeBookmark NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeShuffle NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeAudio NS_ENUM_AVAILABLE_IOS(9_1), UIApplicationShortcutIconTypeUpdate NS_ENUM_AVAILABLE_IOS(9_1) } NS_ENUM_AVAILABLE_IOS(9_0) __TVOS_PROHIBITED;

如果系統圖標不滿足需求,可使用+ (instancetype)iconWithTemplateImageName:(NSString *)templateImageName;添加自定義圖片作為標簽,需要注意的是:圖片必須預先添加進bundle。

第2步是創建1個標簽,并進行相干配置,這1步與靜態添加標簽中的Item01樣,初始化中的相干設置和上邊1模1樣,不多啰嗦。

第3步是將標簽添加進pplication的shortcutItems中,如果想添加多個標簽,可以創建多個UIApplicationShortcutItem對象,并加入數組中。

添加完后,我們再次運行程序查看效果:


動態添加標簽后的效果

檢測App啟動方式

標簽添加完成了,現在我們可以通過兩種途徑來啟動App,1種是傳統的點擊icon圖標啟動App,另外一種是通過按壓icon喚起快速入口,通過快速入口進入App中指定的功能頁面。我們要如何檢測是從哪里進入App呢?

iOS9在AppDelegated中提供了1個新方法:- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler,如果App是從快速入口啟動的,則會履行這個方法。該方法的shortcutItem參數攜帶了從快速入口進入app時的標簽參數。

如果是從快速入口啟動的App,我們可以判斷shortcutItem.localizedTitle屬性的值來判斷是從哪個標簽進入的App。

來1個需求:如果是從“點我”這個標簽進來的,我們把頁面背景色彩修改成黃色,如果是從“么么噠”這個標簽進來的,我們講頁面背景色彩修改成紅色。代碼以下:

// 程序在后臺運行,或從死亡被激活,從3d進來的頁面 - (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler { if ([shortcutItem.localizedTitle isEqualToString:@"點我"]) { self.window.rootViewController.view.backgroundColor = [UIColor yellowColor]; } else if ([shortcutItem.localizedTitle isEqualToString:@"么么噠"]) { self.window.rootViewController.view.backgroundColor = [UIColor redColor]; } }

彩蛋:如何在摹擬器中使用3D Touch功能?

上邊我們講了這么多,還是需要在iphone6s中來驗證效果。對沒有裝備的同學們怎樣辦呢?我們可以安裝1些插件,來讓摹擬器支持1下3D Touch中的Home Screen Quick Actions模塊功能。

首先我們需要在gitHub中下載1個插件,這個插件只能安裝在Xcode7中。地址在這里:https://github.com/DeskConnect/SBShortcutMenuSimulator

剩下的依照這個頁面的指引操作就能夠了。為了照顧1下懶得看英文的同學,在這里我把操作步驟羅列出來。

插件安裝篇

1、 在終端中輸入命令git clone https://github.com/DeskConnect/SBShortcutMenuSimulator.git克隆該插件到本地。


克隆插件

2、 繼續輸入命令cd SBShortcutMenuSimulator進入插件所在文件夾

3、輸入命令make安裝插件


安裝插件

插件使用篇

1、輸入命令xcrun simctl spawn booted launchctl debug system/com.apple.SpringBoard --environment DYLD_INSERT_LIBRARIES=$PWD/SBShortcutMenuSimulator.dylib和xcrun simctl spawn booted launchctl stop com.apple.SpringBoard啟動插件

2、輸入命令來喚起某個App的Home Screen Quick Actions功能:echo 'com.apple.mobilecal' | nc 127.0.0.1 8000。其中的com.apple.mobilecal是你的bundle id。命令履行效果以下:


命令履行效果

我們把bundle id換為我們剛剛寫的工程的ID,測試1下echo 'quanzheng.-DTouchDemo' | nc 127.0.0.1 8000



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: freesexvideos性亚洲老年 | 福利片 在线 | 久久久久久免费播放一级毛片 | 久久亚洲伊人成综合人影院 | 黄色片aa | 亚洲a视频 | 中文字幕在线播 | 日韩精品一区二区三区小说 | 欧美18av | 欧美一级毛片在线播放 | 日韩久久精品 | 亚洲视频www | 亚洲三级a | 波兰性xxxxx极品hd | 最近最新中文字幕免费1 | 中国美女隐私无遮挡免费视频 | 亚在线 | 欧美色欧美色 | 一二三四视频在线观看免费高清 | 68久久久久欧美精品观看 | 最新国产福利片在线观看 | 欧美一区二区三区在线观看免费 | 尤物视频在线 | 亚洲精品视频一区二区 | 俺去啦最新官网 | 亚洲综合图片小说 | 在线欧美不卡 | 97午夜理伦片在线影院 | 最新内地三级在线观看 | xxxx性欧美黑人 | 富二代网站啪啪精品 | 国产高清一区二区 | 免费播放观看在线视频 | 欧美性猛交黑人 | 亚洲伊人成人 | 欧美一区二区三区久久综合 | 欧美freesex呦交hd | 欧美在线一区二区三区不卡 | 丁香网五月 | 亚洲欧美国产另类视频 | 亚洲日韩精品欧美一区二区一 |