iOS 지압 은 iOS 9 의 3D Touch 를 통합 하 는 방법 입 니 다.

5984 단어 ios3dtouch
1.머리말
6S 가 도래 함 에 따라 3DTouch 는 각종 인기 앱 에 빠르게 보급 되 었 고 블 로 거들 이 직접 체험 한 결과 사용 편의 성 이 크게 향상 되 었 다 는 것 을 알 게 되 었 다.그 후에 스스로 문 서 를 따라 Demo 를 써 서 여러분 에 게 공유 하고 필요 한 친구 에 게 도움 이 되 었 으 면 좋 겠 다.
2.3D Touch 는 어떻게 사용 하나 요?  
2.1.메 인 화면 에서 APP 아이콘 을 다시 누 르 면 Touch 메뉴 가 나타 납 니 다.

AppleDelegate 파일 의 프로그램 입구 설정:
didFinishLaunchingWithOptions

// App    3D Touch  
//  
//    
UIApplicationShortcutIcon *iconCamera = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeAdd];
//    
UIMutableApplicationShortcutItem *itemCamera = [[UIMutableApplicationShortcutItem alloc] initWithType:@"1" localizedTitle:@"  "];
//         
itemCamera.icon = iconCamera;
//  
//    
UIApplicationShortcutIcon *iconPhotoLibrary = [UIApplicationShortcutIcon iconWithType:UIApplicationShortcutIconTypeSearch];
//    
UIMutableApplicationShortcutItem *itemPhotoLibrary = [[UIMutableApplicationShortcutItem alloc] initWithType:@"2" localizedTitle:@"  "];
//         
itemPhotoLibrary.icon = iconPhotoLibrary;
//   App icon
application.shortcutItems = @[itemCamera,itemPhotoLibrary];
 팝 업 메뉴,사용자 가 클릭 한 후 지정 한 페이지 로 이동 하도록 해 야 합 니 다.
여기 서 우 리 는 AppDelegate 에 새로 추 가 된 방법 을 사용 할 것 이다.

- (void)application:(UIApplication *)application performActionForShortcutItem:(nonnull UIApplicationShortcutItem *)shortcutItem completionHandler:(nonnull void (^)(BOOL))completionHandler; 
 나중에 저희 가 이 방법 에서 점프 를 해 야 돼 요.

//  type
if ([shortcutItem.type isEqualToString:@"1"]) {
 
 UIImagePickerController *picker = [[UIImagePickerController alloc] init];//   
 picker.allowsEditing = YES;//     
 picker.sourceType = UIImagePickerControllerSourceTypeCamera;
 [self.window.rootViewController presentViewController:picker animated:YES completion:nil];//      
 
}
//  type
if ([shortcutItem.type isEqualToString:@"2"]) {
 UIImagePickerController *picker = [[UIImagePickerController alloc] init];//   
 picker.allowsEditing = YES;//     
 picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
 [self.window.rootViewController presentViewController:picker animated:YES completion:nil];//     
 클릭 하면 각각 카메라 와 앨범 에 들 어 갑 니 다.

2.2.3DTouch 미리 보기 기능 을 살짝 누 르 고 미리 보기 시 하단 메뉴 추가
우선 미리 보기 와 길 이 를 제스처 로 구분 하고 초기 화 할 때 기본 적 인 검 사 를 해 야 합 니 다.

nterface ViewController () <UIViewControllerPreviewingDelegate>
{
 UILongPressGestureRecognizer *_longPress;
}
@end
@implementation ViewController
- (void)viewDidLoad {
 [super viewDidLoad];
 UILongPressGestureRecognizer *longPressGr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressToDo)];
 _longPress = longPressGr;
}
//        3DTouch
- (void)check3DTouch{
 if (self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable) {
  [self registerForPreviewingWithDelegate:self sourceView:self.view];
  NSLog(@"3D Touch   ");
  //    
  _longPress.enabled = NO;
 }else{
  _longPress.enabled = YES;
 }
}
- (void)viewWillAppear:(BOOL)animated{
 [self check3DTouch];
}
그리고 UIViewController Previewing Delegate 의 협 의 를 실현 해 야 합 니 다.

@interface ViewController () <UIViewControllerPreviewingDelegate>

//        
- (UIViewController *)previewingContext:(id<UIViewControllerPreviewing>)previewingContext viewControllerForLocation:(CGPoint)location;
#pragma mark >> 3D touch     
//          
- (UIViewController *)previewingContext:(id<UIViewControllerPreviewing>)previewingContext viewControllerForLocation:(CGPoint)location{
 //         ,         ,            Cell    ,   location  tableView convertPoint     Cell
 ASPreviewViewController *vc = [[ASPreviewViewController alloc] init];
 vc.view.frame = self.view.frame;
 UIImageView *er = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"123.png"]];
 vc.view = er;
 return vc;
}
완료 후 기본 미리보기 효과 구현 가능:

마지막 으로 하나 더.
미리 볼 때 아래쪽 메뉴 추가
저희 가 방금 만 든 미리 보기 컨트롤 러 ASPreviewViewController 에서 UIViewController PreviewingDelegate 프로 토 콜 을 실현 합 니 다.
그리고 대리 방법 을 다시 쓰 세 요.

- (NSArray<id<UIPreviewActionItem>> *)previewActionItems;
 
//       Action Items
- (NSArray<id<UIPreviewActionItem>> *)previewActionItems{
 UIPreviewAction *p1 =[UIPreviewAction actionWithTitle:@"  " style:UIPreviewActionStyleDefault handler:^(UIPreviewAction * _Nonnull action, UIViewController * _Nonnull previewViewController) {
  NSLog(@"     ");
 }];
 UIPreviewAction *p2 =[UIPreviewAction actionWithTitle:@"  " style:UIPreviewActionStyleDefault handler:^(UIPreviewAction * _Nonnull action, UIViewController * _Nonnull previewViewController) {
  NSLog(@"     ");
 }];
 NSArray *actions = @[p1,p2];
 return actions;
}

위 에서 말 한 것 은 편집장 이 소개 한 iOS 지압 이 iOS 9 의 3D Touch 를 통합 하 는 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 은 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기