2015-09-10 20 views
5

3D Touch, iPhone 6s/iPhone 6s modelinde tanıtıldı ve 3D Touch ile ilgili API'ye erişip erişemediğimizi merak ediyorum ve programatik olarak bizim uygulamamızda yapalım mı? Herkesin bazı fikirleri var mı?iOS 3D Programatik bir şekilde

+4

Dokümantasyon, makaleler veya örnek kodlardan herhangi birine baktınız mı? https://developer.apple.com/ios/3d-touch/ –

cevap

9

Uygulamalarda 3B dokunma işlevselliğine erişiminiz olacak. UITouch sınıfında, bir tap olayı gücüne sahip olacak yeni bir özellik, force olacaktır. 1.0, "ortalama dokunma" olarak tanımlanmaktadır. appDelegate.m

yılında İthalat sınıf

ithalat -:

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

+0

Kılavuz için teşekkürler. – tounaobun

+0

Zor basın için değeri ne olurdu? –

+0

@HarryNg Muhtemelen 1.0'dan daha fazla bir şey. Yine de emin değilim. Bulmak için biraz test yapman gerektiğini tahmin ediyorum. – ddsnowboard

3

ben uygulama simgesinin üzerine bastırmak için kaynak kodunu paylaşıyorum

Adım 1 listesinde 4 kalem doldurmak sys/utsname.h

Adım 2: -

Pragma MARK için de taşımak isterseniz benim app Tab Bar denetleyicisi kullanıyorum **
- (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]; 
    } 
} 

Eventes

Üç D Touch için Eylem ekleme için Makine adı
- (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 alın görünüm denetleyin

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

İlgili konular