iOS 按钮添加点击震动

1. 方法说明:

iOS10后系统提供了一套API来简单实现震动:

init时传入一个style定义好的枚举就可以实现不同的震动

c 复制代码
typedef NS_ENUM(NSInteger, UIImpactFeedbackStyle) {
    UIImpactFeedbackStyleLight,
    UIImpactFeedbackStyleMedium,
    UIImpactFeedbackStyleHeavy,
    UIImpactFeedbackStyleSoft     API_AVAILABLE(ios(13.0)),
    UIImpactFeedbackStyleRigid    API_AVAILABLE(ios(13.0))
};

// UIImpactFeedbackGenerator is used to give user feedback when an impact between UI elements occurs
UIKIT_EXTERN API_AVAILABLE(ios(10.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(tvos, watchos) NS_SWIFT_UI_ACTOR
@interface UIImpactFeedbackGenerator : UIFeedbackGenerator

- (instancetype)initWithStyle:(UIImpactFeedbackStyle)style;

/// call when your UI element impacts something else
- (void)impactOccurred;

/// call when your UI element impacts something else with a specific intensity [0.0, 1.0]
- (void)impactOccurredWithIntensity:(CGFloat)intensity API_AVAILABLE(ios(13.0));

@end

2. 举例

c 复制代码
UIImpactFeedbackGenerator *generator = [[UIImpactFeedbackGenerator alloc] initWithStyle:UIImpactFeedbackStyleLight];
[generator impactOccurred];

3. 还有一套API

在AudioTool.framework里还有一套API可以实现震动,这个系统适配多些

c 复制代码
#import <AudioToolbox/AudioToolbox.h>
// 类似于老系统来短信的震动
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
// 类似touch一次短震
AudioServicesPlaySystemSound(1519);
// 类似touch长按app图标时的震动
AudioServicesPlaySystemSound(1520);
// 类似关iPhone左侧物理静音键的震动
AudioServicesPlaySystemSound(1521);
相关推荐
90后的晨仔1 小时前
《SwiftUI 进阶第6章:列表与滚动视图》
ios
空中海1 小时前
第十章:iOS架构设计与工程化
macos·ios·cocoa
90后的晨仔8 小时前
《SwiftUI 进阶第7章:导航系统》
ios
90后的晨仔8 小时前
《swiftUI进阶 第9章SwiftUI 状态管理完全指南》
ios
90后的晨仔8 小时前
《 SwiftUI 进阶第8章:表单与设置界面》
ios
90后的晨仔9 小时前
《SwiftUI 进阶第5章:数据处理与网络请求》
ios
90后的晨仔10 小时前
《SwiftUI 进阶第4章:响应式布局》
ios
平淡风云10 小时前
IOS开发:如何获取苹果手机的uuid
ios·iphone·uuid
90后的晨仔10 小时前
《SwiftUI 进阶学习第3章:手势与交互》
ios
90后的晨仔10 小时前
《SwiftUI 进阶学习第2章:动画与过渡》
ios