1.前言
隨著6S的到來,3DTouch被各大熱門APP迅速普及,博主親自體驗后,發現使用便捷性大幅提高,隨后自己照著文檔,寫了個Demo出來。
2.如何使用3D Touch?
2.1.主界面重按APP圖標,彈出Touch菜單
在AppleDelegate文件中的程序入口處配置:
didFinishLaunchingWithOptions
//給App圖標添加3DTouch菜單//拍照//菜單圖標UIApplicationShortcutIcon*iconCamera=[UIApplicationShortcutIconiconWithType:UIApplicationShortcutIconTypeAdd];//菜單文字UIMutableApplicationShortcutItem*itemCamera=[[UIMutableApplicationShortcutItemalloc]initWithType:@"1"localizedTitle:@"拍照"];//綁定信息到指定菜單itemCamera.icon=iconCamera;//相冊//菜單圖標UIApplicationShortcutIcon*iconPhotoLibrary=[UIApplicationShortcutIconiconWithType:UIApplicationShortcutIconTypeSearch];//菜單文字UIMutableApplicationShortcutItem*itemPhotoLibrary=[[UIMutableApplicationShortcutItemalloc]initWithType:@"2"localizedTitle:@"相冊"];//綁定信息到指定菜單itemPhotoLibrary.icon=iconPhotoLibrary;//綁定到Appiconapplication.shortcutItems=@[itemCamera,itemPhotoLibrary];
彈出菜單,我們需要讓用戶點擊后跳轉指定頁面
這里我們會用到AppDelegate里新增加的一個方法
-(void)application:(UIApplication*)applicationperformActionForShortcutItem:(nonnullUIApplicationShortcutItem*)shortcutItemcompletionHandler:(nonnullvoid(^)(BOOL))completionHandler;
讓后我們需要在這個方法里做跳轉的操作
//照相typeif([shortcutItem.typeisEqualToString:@"1"]){UIImagePickerController*picker=[[UIImagePickerControlleralloc]init];//初始化picker.allowsEditing=YES;//設置可編輯picker.sourceType=UIImagePickerControllerSourceTypeCamera;[self.window.rootViewControllerpresentViewController:pickeranimated:YEScompletion:nil];//進入照相界面}//相冊typeif([shortcutItem.typeisEqualToString:@"2"]){UIImagePickerController*picker=[[UIImagePickerControlleralloc]init];//初始化picker.allowsEditing=YES;//設置可編輯picker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;[self.window.rootViewControllerpresentViewController:pickeranimated:YEScompletion:nil];//進入圖片庫
點擊后分別會進入相機和相冊
2.2. 3DTouch輕按預覽功能,預覽時底部菜單的添加
首先我們要把輕按預覽和長按手勢區分開來,這里要在初始化時做一個基本的檢測。
nterfaceViewController()<UIViewControllerPreviewingDelegate>{UILongPressGestureRecognizer*_longPress;}@end@implementationViewController-(void)viewDidLoad{[superviewDidLoad];UILongPressGestureRecognizer*longPressGr=[[UILongPressGestureRecognizeralloc]initWithTarget:selfaction:@selector(longPressToDo)];_longPress=longPressGr;}//檢測頁面是否處于3DTouch-(void)check3DTouch{if(self.traitCollection.forceTouchCapability==UIForceTouchCapabilityAvailable){[selfregisterForPreviewingWithDelegate:selfsourceView:self.view];NSLog(@"3DTouch開啟");//長按停止_longPress.enabled=NO;}else{_longPress.enabled=YES;}}-(void)viewWillAppear:(BOOL)animated{[selfcheck3DTouch];}
然后我們需要實現 UIViewControllerPreviewingDelegate的協議
@interfaceViewController()<UIViewControllerPreviewingDelegate>
//然后實現代理方法-(UIViewController*)previewingContext:(id<UIViewControllerPreviewing>)previewingContextviewControllerForLocation:(CGPoint)location;#pragmamark>>3Dtouch代理方法//輕按進入浮動預覽頁面-(UIViewController*)previewingContext:(id<UIViewControllerPreviewing>)previewingContextviewControllerForLocation:(CGPoint)location{//注意這里我因為測試,沒做具體的位置處理,如果需要定位到具體的圖片Cell位置的話,可以用location通過tableView的convertPoint來取到指定CellASPreviewViewController*vc=[[ASPreviewViewControlleralloc]init];vc.view.frame=self.view.frame;UIImageView*er=[[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"123.png"]];vc.view=er;returnvc;}
完成后可以實現基本的預覽效果:
最后我們加上一個
預覽時下滑底部菜單的添加
在我們剛剛創建的預覽控制器ASPreviewViewController里實現 UIViewControllerPreviewingDelegate的協議
然后重寫它的代理方法
-(NSArray<id<UIPreviewActionItem>>*)previewActionItems;//預覽頁面底部ActionItems-(NSArray<id<UIPreviewActionItem>>*)previewActionItems{UIPreviewAction*p1=[UIPreviewActionactionWithTitle:@"分享"style:UIPreviewActionStyleDefaulthandler:^(UIPreviewAction*_Nonnullaction,UIViewController*_NonnullpreviewViewController){NSLog(@"點擊了分享");}];UIPreviewAction*p2=[UIPreviewActionactionWithTitle:@"收藏"style:UIPreviewActionStyleDefaulthandler:^(UIPreviewAction*_Nonnullaction,UIViewController*_NonnullpreviewViewController){NSLog(@"點擊了收藏");}];NSArray*actions=@[p1,p2];returnactions;}
感謝你能夠認真閱讀完這篇文章,希望小編分享的“iOS怎么使用3D Touch”這篇文章對大家有幫助,同時也希望大家多多支持本站,關注本站行業資訊頻道,更多相關知識等著你來學習!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
什么是股票持倉價持倉價也叫價格,當用戶買入一定數量的股票白銀后,如果未進行任何操作,此時持倉價=成本價。即用戶首次買入的價格可以視作為投資者的成本價(未經過遞延費、止損或止盈之前的總倉位成本價格)。 持倉價代表用戶當前持有倉位的價格,如果是買入的,每日持倉均會有持倉遞延費,也叫隔夜費,每日的持倉價格是會上漲的,但成本價格是用戶首次買入的價格。此時持倉價》成本價。當用戶買入的是股票的時候此時沒有遞延...
歌唱事業相信大家對之前春晚薩頂頂的歌曲《萬物有靈》印象深刻。薩頂頂的藏式服裝和配飾非常引人注目,她也是格萊美邀請的第一位中國歌手??梢哉f她做了一個大膽的嘗試,將佛教和流行音樂結合起來,不過還好,得到了不錯的效果。她出道的時候也經歷了很多風浪,所以被觀眾噴了很多。不過后來她結婚了,有了一個女兒,這幾年已經很少出現在大眾的視野里了。薩頂頂,1983年出生,今年36歲。這個年紀能有這么高的成就,真的很神...
關 于 dnf寒冰光劍 寒冰劍光子劍的知識大家了解嗎?以下就是小編整理的關于dnf寒冰光劍 寒冰劍光子劍的介紹,希望對大家有幫助!DNF寒冰光劍 - 冰雪神器的誕生【資料圖】DNF是一款以魔幻風為主題的大型多人在線角色扮演游戲,這個游戲不僅有著精美的畫面和豐富的玩法,更有著一批批的熱愛者和忠實粉絲。在DNF游戲中,有很多武器和道具,而其中最受歡迎的武器之一就是寒冰光劍了。那么,究竟是什么讓這把冰雪...