iOS10爲用戶添加觸摸反饋

iOS10爲用戶添加觸摸反饋

    在iOS10中,UIKit框架中新增長了3個類,UIImpactFeedbackGenerator類、UINotificationFeedbackGenerator類與UISelectionFeedbackGenerator類。開發者使用這3個類能夠進一步爲用戶的某些交互操做加強反饋。舉例而言,當用戶點擊了某個按鈕,開發者能夠爲其提供一個適當的震動效果做爲觸覺上的反饋。示例代碼以下:html

//這個方法經過傳入參數來肯定觸發什麼樣的用戶觸覺反饋
-(void)feedbackStart:(int)style{
    switch (style) {
        case 1:
        {
            UIImpactFeedbackGenerator * imp = [[UIImpactFeedbackGenerator alloc]initWithStyle:UIImpactFeedbackStyleHeavy];
            [imp impactOccurred];
        }
            break;
        case 2:
        {
            UIImpactFeedbackGenerator * imp = [[UIImpactFeedbackGenerator alloc]initWithStyle:UIImpactFeedbackStyleMedium];
            [imp impactOccurred];
        }
            break;
        case 3:
        {
            UIImpactFeedbackGenerator * imp = [[UIImpactFeedbackGenerator alloc]initWithStyle:UIImpactFeedbackStyleLight];
            [imp impactOccurred];
        }
            break;
        case 4:
        {
            UINotificationFeedbackGenerator * imp = [[UINotificationFeedbackGenerator alloc]init];
            [imp notificationOccurred:UINotificationFeedbackTypeError];
        }
            break;
        case 5:
        {
            UINotificationFeedbackGenerator * imp = [[UINotificationFeedbackGenerator alloc]init];
            [imp notificationOccurred:UINotificationFeedbackTypeSuccess];
        }
            break;
        case 6:
        {
            UINotificationFeedbackGenerator * imp = [[UINotificationFeedbackGenerator alloc]init];
            [imp notificationOccurred:UINotificationFeedbackTypeWarning];
        }
            break;
        case 7:
        {
            UISelectionFeedbackGenerator * imp = [[UISelectionFeedbackGenerator alloc]init];
            [imp selectionChanged];
        }
            break;
        default:
            break;
    }
}

UIImpactFeedbackGenerator類是標準的觸覺反饋類,其調用impactOccurred方法來觸發反饋,其實例在建立時,能夠經過枚舉來建立強度不一樣的反饋:框架

typedef NS_ENUM(NSInteger, UIImpactFeedbackStyle) {
    //輕度的反饋
    UIImpactFeedbackStyleLight,
    //中等強度的反饋
    UIImpactFeedbackStyleMedium,
    //高強度的反饋
    UIImpactFeedbackStyleHeavy
};

UINotificationFeedbackGenerator類是專用於通知類交互的觸覺反饋,其在進行反饋時也有3中枚舉類型可選,解析以下:spa

typedef NS_ENUM(NSInteger, UINotificationFeedbackType) {
    //成功類通知的反饋
    UINotificationFeedbackTypeSuccess,
    //警告類通知的反饋
    UINotificationFeedbackTypeWarning,
    //錯誤類通知的反饋
    UINotificationFeedbackTypeError
};

UISelectionFeedbackGenerator類建立的反饋應用與某些選擇器控件,例如用戶在一個單選列表中切換選項、切換按鈕的開關狀態時,可使用其來進行觸覺反饋。code

    須要注意:不是全部的場景都須要反饋,頻繁的觸覺反饋會給用戶代碼困擾,開發者在使用這些類時要適當。htm

    有時候,頻繁的觸覺反饋可能會引發反饋延時,這將大大下降用戶的體驗,官方建議開發者在合適的時機建立反饋,而後調用prepare方法來使反饋準備完成,以後在須要的時機再進行反饋的觸發。須要注意,UIImpactFeedbackGenerator類、UINotificationFeedbackGenerator類與UISelectionFeedbackGenerator類都有一個相同的父類UIFeedbackGenerator類,這個類中定義了prepare方法,當調用這個方法時,系統會調起相關服務來進行觸覺觸覺反饋的準備工做。開發

專一技術,熱愛生活,交流技術,也作朋友。it

——琿少 QQ羣:203317592io

相關文章
相關標籤/搜索