美文网首页
iOS中震动反馈Haptic Feedback使用

iOS中震动反馈Haptic Feedback使用

作者: 张囧瑞 | 来源:发表于2018-01-04 21:39 被阅读651次

    前几天元旦的时候,用iMessage发“新年快乐”的时候,苹果给出了放烟花的彩蛋。

    happyNewYear.png

    这个倒是还不是很令人吃惊,真正令人吃惊的是手机的震动真的跟放烟花的节奏一模一样,苹果的震动处理真的是吓人。包括Macbook上的触摸板震动,以前我还真的以为是可以按下去的,直到有一天电脑死机了才知道是震动反馈。。

    正好趁着这个机会把苹果从iOS9就开始使用的震动反馈拿出来看看。

    其实在发布iOS9中的 force touch就是用了这个,只不过当时苹果并没有开放api给开发者使用。

    这不,iOS 10发布之后,苹果果然就把这个接口开放了出来。

    UIFeedbackGenerator

    UIFeedbackGenerator是整个震动反馈的核心,它只有一个方法

    
    - (void)prepare;
    
    

    他的作用就是让响应立刻发生,如果不调用这个方法的话,可能会发生延时,而且多次调用这个方法也没问题,他是安全的。

    UINotificationFeedbackGenerator

    UINotificationFeedbackGenerator才是真正需要我们写的东西,其实他里边的东西也不多,只有三个属性

    • UINotificationFeedbackTypeSuccess

    • UINotificationFeedbackTypeWarning

    • UINotificationFeedbackTypeError

    分别在成功、警告和错误时调用。

    具体的调用方法就是这样:

    
    + (void)executeSuccessFeedback
    
    {
    
     UINotificationFeedbackGenerator *generator = [[UINotificationFeedbackGenerator alloc] init];
    
     [generator notificationOccurred:UINotificationFeedbackTypeSuccess];
    
    }
    
    

    UIImpactFeedbackGenerator

    UIImpactFeedbackGenerator是另外一个类型的震动,同样也拥有三种形式

    • UIImpactFeedbackStyleLight

    • UIImpactFeedbackStyleMedium

    • UIImpactFeedbackStyleHeavy

    分别是轻度、中度和重度。

    调用的方法也很简单:

    
    + (void)excuteLightFeedback
    
    {
    
     UIImpactFeedbackGenerator *generator = [[UIImpactFeedbackGenerator alloc] initWithStyle: UIImpactFeedbackStyleLight];
    
     [generator prepare];
    
     [generator impactOccurred];
    
    }
    
    

    UISelectionFeedbackGenerator

    UISelectionFeedbackGenerator中只有一个类型,是用来模拟选择滚轮一类控件时的震动,比如计时器中的picker滚动时就有这个效果。

    
    + (void)excuteSelectionFeedback
    
    {
    
     UISelectionFeedbackGenerator *generator = [[UISelectionFeedbackGenerator alloc] init];
    
     [generator selectionChanged];
    
    }
    
    

    Demo

    最后放Demo,下载下来用真机跑一下按按就知道什么感觉啦。

    demo.png

    相关文章

      网友评论

          本文标题:iOS中震动反馈Haptic Feedback使用

          本文链接:https://www.haomeiwen.com/subject/nupdnxtx.html