天天看點

iOS-關于“用Runtime解決Button重複點選”引發的相機按鈕問題

在項目中經常能用到一個功能,就是對于按鈕的點選時間間隔控制,如果不控制,什麼時候點選都會觸發事件,一般一秒内允許按鈕點選1到3次;

這裡就需要用Runtime實作,下面是我基于UIButton建立的一個分類:

.h

.m

通過上述方法,可解決按鈕重複點選,預設設定0.5秒内可點選一次;

但是在我調用相機 UIImagePickerController 的時候,坑出現了,你已經置身其中,點選拍照按鈕,無反應,點選切換前後攝像頭按鈕,無反應,通過測試,發現是上面的檔案内容導緻。

基于 UIImagePickerController 建立一個 XKBaseUIImagePickerController;

調用相機時用 XKBaseUIImagePickerController;

在 XKBaseUIImagePickerController 的 viewWillAppear 方法中;

找到相機上的這幾個按鈕,然後對按鈕添加 accessibilityIdentifier 辨別: 

在給相機上各按鈕添加辨別後,在上面的 UIButton 分類檔案 .m 檔案中

修改以下方法,過濾掉添加辨別的按鈕即可

關于相機調用時,用水管檢測會有記憶體洩露,在相機 dismiss 後,将相機置 nil,水管就檢測不到了:

繼續閱讀