1
我們有一個自定義的UIView子類,由於本討論範圍之外的原因不能簡單地轉換爲UIButton子類,但我們仍然希望它對可訪問性操作作出響應,就好像它是一個按鈕。如何使UIView子類不會從UIButton繼承響應VoiceOver激活手勢?
我們知道我們可以設置'按鈕'的特性,VoiceOver會這樣宣佈它,但是如何讓用戶通過雙擊屏幕上的VoiceOver光標來激活控件在上面?
我們有一個自定義的UIView子類,由於本討論範圍之外的原因不能簡單地轉換爲UIButton子類,但我們仍然希望它對可訪問性操作作出響應,就好像它是一個按鈕。如何使UIView子類不會從UIButton繼承響應VoiceOver激活手勢?
我們知道我們可以設置'按鈕'的特性,VoiceOver會這樣宣佈它,但是如何讓用戶通過雙擊屏幕上的VoiceOver光標來激活控件在上面?
好的,這比我想象的要容易。爲了讓任何UIView響應可訪問性操作,只需實現一個UITapGestureRecognizer並像處理其他任何點擊事件一樣處理即可。這是如何...
let tapGestureRecognizer = UITapGestureRecognizer(target:self, action:#selector(labelTapped))
testLabel.userInteractionEnabled = true
testLabel.addGestureRecognizer(tapGestureRecognizer)
一旦你這樣做,你的標籤將響應無障礙操作。