2016-03-17 94 views
1

我有一個簡單的UITableView,我已經添加了一個UIButton到頁腳。UITableView添加FooterView按鈕有時點擊不執行動作

與此類似:

self.btn =[UIButton buttonWithType:UIButtonTypeCustom]; 
self.btn.backgroundColor = darkPurple; 
[self.btn setTitle:@"Submit" forState:UIControlStateNormal]; 
[self.btn addTarget:self action:@selector(btnTapped:) forControlEvents:UIControlEventTouchUpInside]; 
[self.btn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 
self.btn.frame=CGRectMake(0, 0, self.tableView.frame.size.width, 100); 
self.btn.showsTouchWhenHighlighted = true; 
self.tableView.tableFooterView = self.btn; 

有時候當我得到滾動到TableView中的底部,如果它不能完全解決該按鈕將無法執行動作。有時它會閃爍(showsTouchWhenHighlighted),但我需要再次點擊它。

我在這裏錯過了什麼?我試過這樣的解決方案,但它似乎並沒有工作。

UIButton touch is delayed when in UIScrollView

我想它總是處理,即使滾動不解決,不能耽誤。

回答

0

我在這裏錯過了什麼?

什麼都沒有。這就是iOS上的觸摸方式。您可以在Mobile Safari中看到相同的內容:如果頁面仍在滾動,則點擊鏈接不起作用。你必須等到頁面完全停止(「解決」,正如你所說的)。

+0

感謝您的回覆。所以沒有辦法禁用這個?有按鈕「閃光」,然後什麼都沒有發生,這是煩人的。 – aherrick

+0

我同意。我認爲這是因爲滾動動畫正在進行時按鈕「吃了觸摸」。 (該短語來自幾年前的Apple WWDC視頻。)您可以通過在按鈕上放置UITapGestureRecognizer來解決此問題。要小心,因爲您必須在它是按鈕本身還是正在響應的手勢識別器之間進行調解。 – matt

+0

馬特,你能解釋一下嗎?我已經添加了一個UITapGestureRecognizer,而且它的執行方式完全相同。謝謝! – aherrick