面试题答案
一键面试引入Core Haptics框架步骤
- 打开项目设置:在Xcode中,选中项目导航栏中的项目文件,确保选中的是项目而不是某个目标。
- 选择目标:在项目设置中,选择你想要引入框架的目标。
- 进入“General”标签:在目标设置中,找到“General”标签。
- 添加框架:在“Frameworks, Libraries, and Embedded Content”部分,点击“+”号,在弹出的搜索框中输入“Core Haptics”,选中“Core Haptics.framework”,然后点击“Add”。
简单代码实现短时间震动反馈
#import <CoreHaptics/CoreHaptics.h>
@interface ViewController () <CHHapticEngineDelegate>
@property (nonatomic, strong) CHHapticEngine *hapticEngine;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// 初始化触觉引擎
CHHapticEngine *engine = nil;
NSError *error = nil;
engine = [[CHHapticEngine alloc] initWithDelegate:self];
if (!engine) {
NSLog(@"Failed to create engine: %@", error);
return;
}
self.hapticEngine = engine;
// 启动触觉引擎
[self.hapticEngine startAndReturnError:&error];
if (error) {
NSLog(@"Failed to start engine: %@", error);
return;
}
}
- (void)engine:(CHHapticEngine *)engine didFinishWithError:(NSError *)error {
NSLog(@"Engine finished with error: %@", error);
}
- (IBAction)triggerHapticFeedback:(id)sender {
// 创建一个简单的触觉模式
CHHapticPattern *pattern = nil;
NSError *error = nil;
CHHapticPatternPlayer *player = nil;
// 创建一个短震动的事件
CHHapticEvent *event = [[CHHapticEvent alloc] initWithParameter:CHHapticEventParameter(CHHapticEventTypeHapticContinuous, CHHapticEventParameterValue(1.0), 0)
relativeTime:0.0
duration:0.2];
CHHapticPattern *pattern = [[CHHapticPattern alloc] initWithEvents:@[event] parameters:nil error:&error];
if (!pattern) {
NSLog(@"Failed to create pattern: %@", error);
return;
}
// 创建模式播放器
player = [self.hapticEngine makePlayerWithPattern:pattern error:&error];
if (!player) {
NSLog(@"Failed to create player: %@", error);
return;
}
// 开始播放
[player startAndReturnError:&error];
if (error) {
NSLog(@"Failed to start player: %@", error);
return;
}
}
@end
在上述代码中,在viewDidLoad
方法中初始化并启动了触觉引擎。triggerHapticFeedback:
方法用于创建一个简单的震动模式并播放。这个方法可以绑定到某个UI按钮的点击事件上,当按钮被点击时,就会触发短时间的震动反馈。