iOS 지압 은 iOS 9 의 3D Touch 를 통합 하 는 방법 입 니 다.
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 를 통합 하 는 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 은 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.