您的位置:首页 > 移动开发 > IOS开发

iOS 9 之 3D touch

2015-10-08 11:14 633 查看
程序员的世界里面从来不缺厉害的人

根据苹果的说法,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];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  3D touch ios9