随笔 - 400,  文章 - 0,  评论 - 7,  阅读 - 21万

 //震动一次

/// 震动 OC代码
+ (void)impactOccurred {
    UIImpactFeedbackGenerator *feedBackGenertor = [[UIImpactFeedbackGenerator alloc] initWithStyle:UIImpactFeedbackStyleMedium];
    [feedBackGenertor impactOccurred];
}

 

持续震动

复制代码
        ///震动两秒,间隔0.1秒震动一次
        startContinuousVibration(duration: 2, interval: 0.1)


    /// 持续多长时间的震动
    /// - Parameters:
    ///   - duration: 持续多长时间的震动
    ///   - interval: 每次震动的间隔
    private func startContinuousVibration(duration: TimeInterval, interval: TimeInterval ) {
        let feedbackGenerator = UIImpactFeedbackGenerator(style: .medium)
        feedbackGenerator.prepare() // 预先准备反馈生成器
        
        // 持续两秒的震动,定期触发反馈
//        let duration: TimeInterval = 2.0
//        let interval: TimeInterval = 0.1 // 每次震动的间隔
        
        // 每隔 interval 秒触发一次震动,直到达到 2 秒
        DispatchQueue.main.async {
            self.triggerVibrationRepeatedly(with: feedbackGenerator, interval: interval, duration: duration, elapsedTime: 0.0)
        }
    }

    private func triggerVibrationRepeatedly(with generator: UIImpactFeedbackGenerator, interval: TimeInterval, duration: TimeInterval, elapsedTime: TimeInterval) {
        // 每隔 interval 秒触发一次震动
        if elapsedTime < duration {
            generator.impactOccurred()
            let newElapsedTime = elapsedTime + interval
            
            // 递归调用自己,直到达到持续时间
            DispatchQueue.main.asyncAfter(deadline: .now() + interval) {
                self.triggerVibrationRepeatedly(with: generator, interval: interval, duration: duration, elapsedTime: newElapsedTime)
            }
        }
    }
复制代码

 

 

复制代码
import AudioToolbox

    ///震动两秒 间隔震动
    private func startVibration() {
        let vibrationTime: TimeInterval = 2.0  // 震动的持续时间
        // 开始震动
        AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)
        // 延时停止震动
        DispatchQueue.main.asyncAfter(deadline: .now() + vibrationTime) {
            // 停止震动
            AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)
        }
    }
复制代码

 

posted on   懂事长qingzZ  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2018-12-24 swift - label字体 倾斜,加粗

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示