关键类和方法
- UIViewController:用于接收 3D Touch 相关事件。
- traitCollectionDidChange::当设备的 trait collection 发生变化时调用,用于检测 3D Touch 特性是否可用。
- previewingContext:viewControllerForLocation::用于提供快速预览视图控制器,处理轻按操作。
- previewingContext:commitViewController::用于提交快速预览视图控制器,处理重按操作。
- UIApplicationShortcutItem:用于定义应用程序的快捷方式,可通过 3D Touch 主屏幕快捷方式触发。
- UIViewControllerPreviewing:用于管理 3D Touch 预览功能。
轻按显示简单提示框示例代码
#import "ViewController.h"
@interface ViewController () <UIViewControllerPreviewingDelegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
if (self.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable) {
[self registerForPreviewingWithDelegate:self sourceView:self.view];
}
}
- (UIViewController *)previewingContext:(id <UIViewControllerPreviewing>)previewingContext viewControllerForLocation:(CGPoint)location {
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"轻按提示" message:@"这是一个轻按操作的提示框" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil];
[alertController addAction:okAction];
return alertController;
}
- (void)previewingContext:(id <UIViewControllerPreviewing>)previewingContext commitViewController:(UIViewController *)viewControllerToCommit {
// 重按操作处理
}
@end