北京時(shí)間2015年9月10日凌晨,Apple在美國(guó)舊金山比爾格拉漢姆公民大禮堂(Bill Graham Civic Auditorium)召開(kāi)新品發(fā)布會(huì).本次發(fā)布會(huì)帶來(lái)了3D Touch技術(shù).
本文主要介紹Home Screen Quick Actions,即通過(guò)主屏幕的應(yīng)用Icon,我們可以用3D Touch呼出一個(gè)菜單窘问,進(jìn)行快速定位應(yīng)用功能模塊相關(guān)功能的開(kāi)發(fā)事镣。
添加標(biāo)簽
Apple為我們提供了兩種添加標(biāo)簽的方式:
- 靜態(tài)添加
我們可以通過(guò)在工程的info.plist文件中添加標(biāo)簽,這樣在App第一次運(yùn)行之前就可以使用3DTouch來(lái)喚出標(biāo)簽了. - 動(dòng)態(tài)添加
我們還可以通過(guò)代碼給App添加快速入口掌眠。這樣第一次運(yùn)行App前是看不到這些標(biāo)簽的搞监,必須先運(yùn)行App,以后就才可以喚出這些標(biāo)簽了仁连。
靜態(tài)添加標(biāo)簽
我們可以這種方式添加標(biāo)簽,UIApplicationShortcutItems是一個(gè)數(shù)組,里面存儲(chǔ)著標(biāo)簽,item0就是一個(gè)標(biāo)簽也是這個(gè)數(shù)組的元素,這里添加了一個(gè),標(biāo)題為:"Hello",子標(biāo)題為"World".
我們可以看到數(shù)組中的元素其實(shí)是字典類(lèi)型的,而字典中的key,UIApplicationShortcutItemType,UIApplicationShortcutItemTitle是必有選項(xiàng),其他的是可選項(xiàng),他們依次表示的是
- UIApplicationShortcutItemType表示一個(gè)快捷通道類(lèi)型的字符串
- UIApplicationShortcutItemTitle表示標(biāo)簽的標(biāo)題
- UIApplicationShortcutItemSubtitle表示標(biāo)簽的子標(biāo)題
- UIApplicationShortcutItemIconType表示icon圖的類(lèi)型,系統(tǒng)提供了29種樣式的圖標(biāo)
- UIApplicationShortcutItemIconFile表示自定義標(biāo)簽圖片文件的路徑
- UIApplicationShortcutItemUserInfo表示用戶(hù)信息
動(dòng)態(tài)添加標(biāo)簽
我們?cè)诠こ谈刂破鞯腣iewDidLoad中寫(xiě)如下代碼:
/**
* UIApplicationShortcutItem 創(chuàng)建標(biāo)簽的類(lèi)
* UIApplicationShortcutItem 創(chuàng)建可變標(biāo)簽的類(lèi)
* UIApplicationShortcutItem 創(chuàng)建標(biāo)簽ICON的類(lèi)
*/
// 創(chuàng)建標(biāo)簽的ICON圖標(biāo)恼五。
UIApplicationShortcutIcon *icon = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeAdd];
// 創(chuàng)建一個(gè)標(biāo)簽昌罩,并配置相關(guān)屬性。
UIApplicationShortcutItem *item = [[UIApplicationShortcutItem alloc] initWithType:@"QQ" localizedTitle:@"哈哈哈" localizedSubtitle:@"嘿嘿嘿" icon:icon userInfo:nil];
// 將標(biāo)簽添加進(jìn)Application的shortcutItems中灾馒。
[UIApplication sharedApplication].shortcutItems = @[item];
檢測(cè)App啟動(dòng)方式
我們必須檢測(cè)程序是從以什么方式啟動(dòng)的,在iOS9中Apple在AppDelegate中為我們提供一個(gè)檢測(cè)App從3DTouch快速入口啟動(dòng)的方法,我們可以在這個(gè)方法中進(jìn)行對(duì)標(biāo)簽的判斷從而實(shí)現(xiàn)不同的功能:
- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler
我們?cè)谶@個(gè)方法中點(diǎn)擊不同的標(biāo)簽改變顏色來(lái)測(cè)試...
// 如果App是從快速入口啟動(dòng)的,則會(huì)執(zhí)行這個(gè)方法.shortcutItem是標(biāo)簽參數(shù).
- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler{
if ([shortcutItem.localizedTitle isEqualToString:@"哈哈哈"]) {
self.window.rootViewController.view.backgroundColor = [UIColor cyanColor];
} else if ([shortcutItem.localizedTitle isEqualToString:@"哈..."]) {
self.window.rootViewController.view.backgroundColor = [UIColor yellowColor];
} else if ([shortcutItem.localizedTitle isEqualToString:@"哈~"]) {
self.window.rootViewController.view.backgroundColor = [UIColor orangeColor];
}
}
END
Demo地址:[https://github.com/coderqiao/Something-About-3D-Touch]