日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php開(kāi)源 > 綜合技術(shù) > 3D Touch

3D Touch

來(lái)源:程序員人生   發(fā)布時(shí)間:2016-07-28 09:01:36 閱讀次數(shù):2624次

3D Touch開(kāi)發(fā)初體驗(yàn)

3D Touch功能的開(kāi)發(fā)難度其實(shí)不大,但是由于該功能需要有硬件支持,并且在摹擬器上沒(méi)法體驗(yàn),所以阻擋了1大批開(kāi)發(fā)者的探索腳步。不過(guò)在計(jì)算機(jī)界歷來(lái)沒(méi)有能難倒程序員的問(wèn)題,本文首先將介紹如何使用3D Touch的Home Screen Quick Actions功能,然后介紹如何在摹擬器中使用3D Touch。

3D Touch開(kāi)發(fā)

3D Touch功能概覽

3D Touch有2大模塊:

1、Home Screen Quick Actions

通過(guò)主屏幕的利用Icon,我們可以用3D Touch呼出1個(gè)菜單,進(jìn)行快速定位利用功能模塊相干功能的開(kāi)發(fā),。如微信、京東的App,本文也將重點(diǎn)介紹這項(xiàng)開(kāi)發(fā)技術(shù)。 


微信的快速入口

京東的快速入口

2、Force Properties

iOS9為我們提供了1個(gè)新的交互參數(shù):力度。我們可以檢測(cè)某1交互的力度值,來(lái)做相應(yīng)的交互處理。例如,我們可以通過(guò)力度來(lái)控制快進(jìn)的快慢,音量增加的快慢等。

Home Screen Quick Actions開(kāi)發(fā)指南

3D Touch快速入口標(biāo)簽有兩種添加方式:1種是靜態(tài)添加,在工程中的info.plist文件中添加相干項(xiàng)目。通過(guò)這類(lèi)方式添加的標(biāo)簽,在app第1次運(yùn)行前,就能夠喚出這些標(biāo)簽;另外一種是動(dòng)態(tài)添加,通過(guò)代碼給App添加快速入口。這類(lèi)方式添加的標(biāo)簽,第1次運(yùn)行App前是看不到這些標(biāo)簽的,必須先運(yùn)行1次App,以后就能夠喚出這些標(biāo)簽了。

靜態(tài)添加入口標(biāo)簽

靜態(tài)添加入口標(biāo)簽不需要寫(xiě)代碼,只需要在info.plist文件中添加相干功能設(shè)置便可。不過(guò)由于沒(méi)有語(yǔ)句提示,所以我們只能1個(gè)字母1個(gè)字母的去添加,這1點(diǎn)不是很友好。

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


info.plist中添加的內(nèi)容

分析1下添加的項(xiàng)目分別代表甚么意思。

首先是UIApplicationShortcutItems,他是1個(gè)數(shù)組類(lèi)型,數(shù)組中的每個(gè)元素表示1個(gè)入口標(biāo)簽。

然后是Item0,這是數(shù)組中的1個(gè)元素,字典類(lèi)型。在這個(gè)字典中配置各個(gè)標(biāo)簽的相干屬性。

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

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


靜態(tài)添加的標(biāo)簽

這是在UIApplicationShortcutItems中添加了1個(gè)Item的情況,只添加了1個(gè)標(biāo)簽,如果想添加多個(gè)靜態(tài)標(biāo)簽,依樣畫(huà)葫蘆出多個(gè)Item便可。

動(dòng)態(tài)添加入口標(biāo)簽

這類(lèi)方法需要我們寫(xiě)代碼來(lái)添加,首先來(lái)認(rèn)識(shí)3個(gè)類(lèi):

類(lèi)名 功能描寫(xiě)
UIApplicationShortcutItem 創(chuàng)建標(biāo)簽的類(lèi)
UIMutableApplicationShortcutItem 創(chuàng)建可變標(biāo)簽的類(lèi)
UIApplicationShortcutIcon 創(chuàng)建標(biāo)簽ICON的類(lèi)

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

// 創(chuàng)建標(biāo)簽的ICON圖標(biāo)。 UIApplicationShortcutIcon *icon = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeAdd]; // 創(chuàng)建1個(gè)標(biāo)簽,并配置相干屬性。 UIApplicationShortcutItem *item = [[UIApplicationShortcutItem alloc] initWithType:@"two" localizedTitle:@"么么噠" localizedSubtitle:@"愛(ài)你呦" icon:icon userInfo:nil]; // 將標(biāo)簽添加進(jìn)Application的shortcutItems中。 [UIApplication sharedApplication].shortcutItems = @[item];

上邊的代碼,第1步創(chuàng)建出標(biāo)簽的入口,這1步的配置與靜態(tài)添加標(biāo)簽中的UIApplicationShortcutItemIconType目的1樣。系統(tǒng)給我們提供了以下樣式的標(biāo)簽:

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;

如果系統(tǒng)圖標(biāo)不滿(mǎn)足需求,可使用+ (instancetype)iconWithTemplateImageName:(NSString *)templateImageName;添加自定義圖片作為標(biāo)簽,需要注意的是:圖片必須預(yù)先添加進(jìn)bundle。

第2步是創(chuàng)建1個(gè)標(biāo)簽,并進(jìn)行相干配置,這1步與靜態(tài)添加標(biāo)簽中的Item01樣,初始化中的相干設(shè)置和上邊1模1樣,不多啰嗦。

第3步是將標(biāo)簽添加進(jìn)pplication的shortcutItems中,如果想添加多個(gè)標(biāo)簽,可以創(chuàng)建多個(gè)UIApplicationShortcutItem對(duì)象,并加入數(shù)組中。

添加完后,我們?cè)俅芜\(yùn)行程序查看效果:


動(dòng)態(tài)添加標(biāo)簽后的效果

檢測(cè)App啟動(dòng)方式

標(biāo)簽添加完成了,現(xiàn)在我們可以通過(guò)兩種途徑來(lái)啟動(dòng)App,1種是傳統(tǒng)的點(diǎn)擊icon圖標(biāo)啟動(dòng)App,另外一種是通過(guò)按壓icon喚起快速入口,通過(guò)快速入口進(jìn)入App中指定的功能頁(yè)面。我們要如何檢測(cè)是從哪里進(jìn)入App呢?

iOS9在AppDelegated中提供了1個(gè)新方法:- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler,如果App是從快速入口啟動(dòng)的,則會(huì)履行這個(gè)方法。該方法的shortcutItem參數(shù)攜帶了從快速入口進(jìn)入app時(shí)的標(biāo)簽參數(shù)。

如果是從快速入口啟動(dòng)的App,我們可以判斷shortcutItem.localizedTitle屬性的值來(lái)判斷是從哪個(gè)標(biāo)簽進(jìn)入的App。

來(lái)1個(gè)需求:如果是從“點(diǎn)我”這個(gè)標(biāo)簽進(jìn)來(lái)的,我們把頁(yè)面背景色彩修改成黃色,如果是從“么么噠”這個(gè)標(biāo)簽進(jìn)來(lái)的,我們講頁(yè)面背景色彩修改成紅色。代碼以下:

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

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

上邊我們講了這么多,還是需要在iphone6s中來(lái)驗(yàn)證效果。對(duì)沒(méi)有裝備的同學(xué)們?cè)鯓愚k呢?我們可以安裝1些插件,來(lái)讓摹擬器支持1下3D Touch中的Home Screen Quick Actions模塊功能。

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

剩下的依照這個(gè)頁(yè)面的指引操作就能夠了。為了照顧1下懶得看英文的同學(xué),在這里我把操作步驟羅列出來(lái)。

插件安裝篇

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


克隆插件

2、 繼續(xù)輸入命令cd SBShortcutMenuSimulator進(jìn)入插件所在文件夾

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啟動(dòng)插件

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


命令履行效果

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



生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線(xiàn)----------------------------
分享到:
------分隔線(xiàn)----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲精品综合一区二区 | 在线人成| 亚洲一区综合 | 二区在线视频 | 日韩极品在线 | 国产小视频在线播放 | 精品久久久久久久久久久久 | 99精品久久99久久久久 | 中文字幕一区二区三区在线播放 | 欧美日韩在线第一页 | 中文字幕在线观看一区二区三区 | 五月婷婷在线观看 | 国产一区导航 | 国产精品毛片久久 | 9久久精品| 久久久国产精品视频 | 精品久久久久久久久久久久久久久久久久久 | 亚洲大片在线观看 | 美女福利视频 | 欧美一a一片一级一片 | 亚洲福利网 | 亚洲国产精品久久 | 亚洲欧美视频 | 日韩欧美一级在线 | 久久久久国产精品一区二区 | 欧美日韩免费在线观看 | 国产精品福利在线 | 久久国产精品一区 | 亚洲免费在线观看视频 | 黄色的网站在线观看 | 国产一区二区在线免费 | 久久久久无码国产精品一区 | www.com国产 | 欧美一级毛片免费的视频 | 色综合久久88色综合天天 | 国产一区三区在线 | 欧美一区久久 | 国产精品1234 | 久久精品国产亚洲一区二区三区 | 亚洲综合欧美 | 国产一区二区三区四区三区四 |