我有一個放置在UITableViewCell的contentView中的UIButton的子類。我遇到的問題是當按下按鈕並滾動表格(快速)時,按鈕的setHighlighted:
方法被調用三次,全部以YES
作爲參數。當桌子滾動時,按鈕從不會變爲低亮顯示(所以當我完成滾動時,我的一個按鈕看起來像是被按下了,但屏幕上沒有任何手指)。如果我按下按鈕,等待一秒鐘,然後滾動表格不滾動,並且該按鈕被正確取消高亮顯示(當觸摸事件退出按鈕的框架時)。UITableViewCell中的UIButton setHighlighted在表滾動上沒有更新
我已經試過了的tableView設置爲
self.tableView.canCancelContentTouches = NO;
self.tableView.delaysContentTouches = NO;
但是,這並不能幫助(和設置delaysContentTouches = NO
實際上使表中的非滾動)。我沒有嘗試過的新UITableViewCellScrollView設置這些,因爲這是私人的,我不想爲if IOS7, else
添加新的代碼...
的setHighlighted:
調用來自UIControl touchesBegan:
,UIControl touchesMoved
和UIControl touchesEnded:
。我從來沒有從UIControl touchesCancelled:
得到任何東西,這是我希望當tableView接管控件的滾動觸摸事件。
如果有人認爲我做錯了什麼,我可以添加代碼,但這似乎更像是一個概念問題。
爲什麼我沒有從UIControl touchesCancelled:
得到setHighlighted:NO
?
我還沒有嘗試過使用非子類UIButton和setImage:forState:
,因爲我突出顯示的狀態只是漸變,我不想爲它們創建UIImage。但我可以,如果我必須。