IOS 3D Touch programmatically

3D Touch is introduced in the iPhone 6s / iPhone 6s plus, and I'm wondering if we can access the 3D Touch-related APIs and do this programmatically in our application. Does anyone have any ideas?

+5
source share
2 answers

You will have access to 3D touch features in applications. A new force property will appear in the UITouch class that will hold the force that the tap event has. 1.0 is defined as a β€œmiddle stroke."

Source: https://developer.apple.com/ios/3d-touch/

+9
source

I use the source code to click on the application icon. Fill 4 items in the list

Step 1 : - Import the class into appDelegate.m

import sys / utsname.h

Step 2 : -

pragma MARK to get the machine name

 - (NSString *) machineName { struct utsname systemInfo; uname(&systemInfo); return [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { if([[self machineName] isEqualToString:@"iPhone8,2"]|| [[self machineName] isEqualToString:@"iPhone8,1"]) { [self addEventsFor3DTouchEvents]; } return YES; } 

pragma MARK to add actions for three D Touch events

 - (void) addEventsFor3DTouchEvents { if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9.0) { UIApplicationShortcutItem *item1 = [[UIApplicationShortcutItem alloc] initWithType:@"dynamic1" localizedTitle:TITLE_NAME_1 localizedSubtitle:@"" icon:[UIApplicationShortcutIcon iconWithTemplateImageName:TITLE_IMAGE_NAME_1] userInfo:nil]; UIApplicationShortcutItem *item2 = [[UIApplicationShortcutItem alloc] initWithType:@"dynamic1" localizedTitle:TITLE_NAME_2 localizedSubtitle:@"" icon:[UIApplicationShortcutIcon iconWithTemplateImageName:TITLE_IMAGE_NAME_2] userInfo:nil]; UIApplicationShortcutItem *item3 = [[UIApplicationShortcutItem alloc] initWithType:@"dynamic1" localizedTitle:TITLE_NAME_3 localizedSubtitle:@"" icon:[UIApplicationShortcutIcon iconWithTemplateImageName:TITLE_IMAGE_NAME_3] userInfo:nil]; UIApplicationShortcutItem *item4 = [[UIApplicationShortcutItem alloc] initWithType:@"dynamic1" localizedTitle:TITLE_NAME_4 localizedSubtitle:@"" icon:[UIApplicationShortcutIcon iconWithTemplateImageName:TITLE_IMAGE_NAME_4] userInfo:nil]; [[UIApplication sharedApplication] setShortcutItems: @[ item1, item2, item3, item4 ]]; } } #pragma mark - 3DTouch Delegate Methods - (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler { [self moveThrough3DTouch:shortcutItem]; } #pragma MARK for Handling Action for Three D Touch Events - (void)moveThrough3DTouch:(UIApplicationShortcutItem *)temp { if ([temp.localizedTitle isEqualToString:TITLE_NAME_1]) { [self.tabBarController setSelectedIndex:0]; } else if([temp.localizedTitle isEqualToString:TITLE_NAME_2]) { [self.tabBarController setSelectedIndex:1]; } else if([temp.localizedTitle isEqualToString:TITLE_NAME_3]) { [self.tabBarController setSelectedIndex:2]; } else if([temp.localizedTitle isEqualToString:TITLE_NAME_4]) { [self.tabBarController setSelectedIndex:3]; } } 

** I use the tab bar controller in my application if you want to navigate in view mode

 - (void) moveToControllerScene { UIStoryboard *storyboard = [UIStoryboard storyboardWithName:STORY_BOARD_IDENTIFIER bundle:nil]; YOUR_CONTROLLER_OBJECT *obj = [storyboard instantiateViewControllerWithIdentifier:@"YOUR_CONTROLLER_OBJECT"]; [navController pushViewController:obj animated:YES]; } 
+3
source

All Articles