新发布的6s设备增加了3DTouch功能,根据按压力度的不同可以响应不同的事件,刚发布之际,微信就更新了版本,为6S用户增加了快捷呼出菜单,怎么为我们自己的app也增加这新功能呢,很简单,iOS提供了新的API。
@interface UIApplicationShortcutItem : NSObject <NSCopying, NSMutableCopying>
- (instancetype)init NS_UNAVAILABLE;
- (instancetype)initWithType:(NSString *)type localizedTitle:(NSString *)localizedTitle localizedSubtitle:(nullable NSString *)localizedSubtitle icon:(nullable UIApplicationShortcutIcon *)icon userInfo:(nullable NSDictionary *)userInfo NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithType:(NSString *)type localizedTitle:(NSString *)localizedTitle;
其中UIApplicationShortcutItem就是快捷呼出按钮,苹果提供了以上几种初始话方法,我们在AppDelegate.m中添加代码就可以例如我们参照微信添加几个带图片的shotcutItem
UIApplicationShortcutIcon *icom_1 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"01"];
UIApplicationShortcutItem *quickItem_1 = [[UIApplicationShortcutItem alloc] initWithType:@"0" localizedTitle:@"没东西" localizedSubtitle:nil icon:icom_1 userInfo:nil];
UIApplicationShortcutIcon *icom_2 = [UIApplicationShortcutIcon iconWithTemplateImageName:@"02"];
UIApplicationShortcutItem *quickItem_2 = [[UIApplicationShortcutItem alloc] initWithType:@"1" localizedTitle:@"写字板" localizedSubtitle:nil icon:icom_2 userInfo:nil];
[[UIApplication sharedApplication] setShortcutItems:@[quickItem_1,quickItem_2]];
怎么响应这些点击事件呢,在-(void)application:(UIApplication )application performActionForShortcutItem:(UIApplicationShortcutItem )shortcutItem completionHandler:(void (^)(BOOL))completionHandler放法中获得点击事件,具体代码如下
-(void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler{
self.window.rootViewController = _rootNav;
if ([shortcutItem.type isEqualToString:@"0"]) {
if (_rootNav.viewControllers.count > 1) {
[_rootNav popToRootViewControllerAnimated:YES];
}
}else if ([shortcutItem.type isEqualToString:@"1"]){
ViewController *rootView = (ViewController *)_rootNav.topViewController;
[rootView.navigationController pushViewController:[[SecondViewController alloc] init] animated:YES];
}
}
运行以下 我们就为app增加了快速呼出按钮了,同时还有新的api来获取用户的点击力度,在demo中也有,感兴趣的可以去下载本工程3DTouchShortCutDemo