91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iOS怎么使用3D Touch

發布時間:2021-07-12 11:17:48 來源:億速云 閱讀:99 作者:小新 欄目:移動開發

這篇文章主要介紹了iOS怎么使用3D Touch,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

1.前言  

隨著6S的到來,3DTouch被各大熱門APP迅速普及,博主親自體驗后,發現使用便捷性大幅提高,隨后自己照著文檔,寫了個Demo出來。

2.如何使用3D Touch?  

2.1.主界面重按APP圖標,彈出Touch菜單  

iOS怎么使用3D 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];//進入圖片庫

 點擊后分別會進入相機和相冊

iOS怎么使用3D TouchiOS怎么使用3D Touch

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

完成后可以實現基本的預覽效果:

iOS怎么使用3D TouchiOS怎么使用3D Touch

最后我們加上一個

預覽時下滑底部菜單的添加

在我們剛剛創建的預覽控制器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怎么使用3D Touch

感謝你能夠認真閱讀完這篇文章,希望小編分享的“iOS怎么使用3D Touch”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

ios
AI

盐山县| 海阳市| 宜川县| 济源市| 呼伦贝尔市| 岐山县| 汝阳县| 贡山| 灵璧县| 庆元县| 威信县| 敖汉旗| 吉首市| 朝阳区| 淮阳县| 云南省| 青龙| 曲沃县| 全椒县| 河池市| 石渠县| 永登县| 遂川县| 松阳县| 扬州市| 西青区| 昌吉市| 会理县| 广德县| 根河市| 绥德县| 普宁市| 大名县| 青川县| 青岛市| 土默特左旗| 承德市| 扬州市| 姚安县| 赤峰市| 牡丹江市|