2015-09-10 42 views
5

3D Touch是在iPhone 6s/iPhone 6s plus中引入的,我想知道我们是否可以访问3D Touch相关API并在我们的应用程序中以编程方式进行编辑。任何人都有一些想法吗?iOS 3D触摸编程

+4

你看过任何文档,文章或示例代码吗? https://developer.apple.com/ios/3d-touch/ –

回答

9

您将可以在应用程序中使用3D触摸功能。在UITouch课程中将有一个新的属性force,它将保持轻击事件的强度。 1.0被定义为“平均触摸”。

来源:列表https://developer.apple.com/ios/3d-touch/

+0

感谢您的指导。 – tounaobun

+0

重磅新闻的价值是什么? –

+0

@HarryNg可能超过1.0。虽然我不确定。我想你必须做一些测试才能发现。 – ddsnowboard

3

我共享的源代码,按下应用程序图标填写4项

步骤1: - 在appDelegate.m

进口类

进口sys/utsname.h

第2步: -

编译大关获取计算机名称

- (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; 
} 

编译MARK添加动作为三d触摸Eventes

- (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]; 
    } 
} 

**我使用的标签栏控制器在我的应用程序,如果想在移动视图控制

- (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]; 
}