国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS 指壓即達集成iOS9里的3D Touch的方法

2020-07-26 02:53:19
字體:
來源:轉載
供稿:網友

1.前言  

隨著6S的到來,3DTouch被各大熱門APP迅速普及,博主親自體驗后,發現使用便捷性大幅提高,隨后自己照著文檔,寫了個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 iconapplication.shortcutItems = @[itemCamera,itemPhotoLibrary];

 彈出菜單,我們需要讓用戶點擊后跳轉指定頁面

這里我們會用到AppDelegate里新增加的一個方法

- (void)application:(UIApplication *)application performActionForShortcutItem:(nonnull UIApplicationShortcutItem *)shortcutItem completionHandler:(nonnull void (^)(BOOL))completionHandler; 

 讓后我們需要在這個方法里做跳轉的操作

//照相typeif ([shortcutItem.type isEqualToString:@"1"]) {  UIImagePickerController *picker = [[UIImagePickerController alloc] init];//初始化 picker.allowsEditing = YES;//設置可編輯 picker.sourceType = UIImagePickerControllerSourceTypeCamera; [self.window.rootViewController presentViewController:picker animated:YES completion:nil];//進入照相界面 }//相冊typeif ([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];}

然后我們需要實現 UIViewControllerPreviewingDelegate的協議

@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里實現 UIViewControllerPreviewingDelegate的協議

然后重寫它的代理方法

- (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 指壓即達集成iOS9里的3D Touch的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 曲周县| 会东县| 大足县| 翁源县| 井冈山市| 页游| 洮南市| 长宁区| 太仆寺旗| 巴彦淖尔市| 府谷县| SHOW| 龙海市| 河北区| 牡丹江市| 桃园市| 大石桥市| 天全县| 黑山县| 兴和县| 新昌县| 湘潭县| 微山县| 湖南省| 三门峡市| 桓台县| 准格尔旗| 大田县| 石景山区| 江油市| 东安县| 中卫市| 顺昌县| 竹山县| 汉寿县| 黔江区| 伊宁县| 常宁市| 应用必备| 台山市| 白水县|