2017-04-10 79 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