2017-04-10 81 views
0

我有一個在MKMapView頂部的UITableView。我想要具有與Apple地圖應用程序的工作方式類似的功能。你可以上下移動一張桌子,但仍然可以移動背後的地圖。現在,我在索引0處有一個空白單元格,並且我希望能夠禁用該單元格接收的所有觸摸,並允許它後面的地圖移動,但是當觸摸索引1中的單元格時,單元格可以向上滾動而桌子的其餘部分現在位於地圖的頂部。Swift:禁用UITableViewCell觸摸

如果有更好的方法來解決這個問題,我會盡力解決你的問題!

+0

您可以禁用界面生成器中的單元格觸摸,您將在其中找到名爲Selection的tableview屬性並將其設置爲「No Selection」值。 – Hosny

+0

@Hosny這隻會讓單元格不可選,但仍然允許非可選單元格移動單元格所在的表格。我需要單元格和表格不會在觸摸移動時移動,但允許地圖位於單元格和桌子移動。 – Averex

回答

0
func tableView(_ tableView: UITableView, didSelectRowAt 
indexPath: IndexPath){ 

    //UITableViewCell *cell = something 

    if indexPath.row == 0 { 
     cell.selectionStyle = .none; 
     cell.isUserInteractionEnabled = false 
    } 


} 

該代碼的功能是確保在用戶點擊它時不會突出顯示該單元格。然後if中的第二行是確保tableView:didSelectRowAtIndexPath:不會被調用,如果該行被省略,並且即使selectionStyle是none,情況也是如此!

+0

這樣就可以停止單元格上的交互,但觸摸不會通過單元格傳遞給地圖。觸摸仍然與單元格所在的表格進行交互。 – Averex

+0

@Averex所以我很好奇,因爲如果您將表格視圖放在地圖上方,並且第一個單元格不響應用戶的觸摸,它會如何影響MapView?當我看着蘋果地圖時,第一行(索引0)也拉起了桌子,但根本沒有移動地圖。所以我不確定你的意思是「觸摸不通過單元格到地圖」,因爲據我所知,如果地圖頂部有任何元素,並且你觸摸它,那麼地圖不響應觸摸。 –

+0

要回答你的第一個問題,我希望空白單元格是一個緩衝區,以便索引1處的單元格可以在屏幕底部附近開始。我不希望用戶使用空白單元格來移動表格,我只是希望它將其作爲索引1單元格的緩衝區,然後觸摸到空白單元格的任何內容都不會在表格上起作用,而是覆蓋表格以允許地圖在它後面被使用。 是否有任何其他方式使緩衝區沒有空白單元格? – Averex