程序员的世界里面从来不缺厉害的人
根据苹果的说法,3D Touch 只能在iPhone 6s 和 iPhone 6 plus 的真机上使用,但是有人做了 SBShortcutMenuSimulator 这个插件
这里说说怎么让我们的应用支持3d touch
先看看效果图
插件的使用这里暂不作表述,添加支持方法有两种
一种静态方法:通过添加修改info.plist 文件来增加item
另一种动态方法:通过代码来添加
这里阐述的是第二种
iOS9 在3D touch中展示出来的是一个数组,数组里面的元素是一个
UIMutableApplicationShortcutItem
这个对象的创建通过方法来实现
- (instancetype)initWithType:(NSString *)type localizedTitle:(NSString *)localizedTitle localizedSubtitle:(nullable NSString *)localizedSubtitle icon:(nullable UIApplicationShortcutIcon *)icon userInfo:(nullable NSDictionary *)userInfo NS_DESIGNATED_INITIALIZER;
参数type:表示的是这个item的类型,字符串类型,可以通过bundle ID 来设置代替
参数localizedTitle: 表示的是显示的标题
参数icon:表示的是每个item对应的图标,,可以为空
参数userinfo:表示的是传递的参数
设置好后,将它们添加到application的数组中就可以显示了
NSMutableArray *shortcutItems = [application.shortcutItems mutableCopy];
[shortcutItems addObject:shoutItem];
application.shortcutItems = shortcutItems.copy;
- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void(^)(BOOL succeeded))completionHandler NS_AVAILABLE_IOS(9_0);
通过
NSDictionary *dict = [shortcutItem userInfo];
来确定点击的是哪个按钮来判断下一步操作
我们也可以在启动的时候,通过判断键值,来判断是从哪里启动的
UIApplicationShortcutItem *shortcutItem = [launchOptions objectForKey:UIApplicationLaunchOptionsShortcutItemKey];