我有一个在MKMapView顶部的UITableView。我想要具有与Apple地图应用程序的工作方式类似的功能。你可以上下移动一张桌子,但仍然可以移动背后的地图。现在,我在索引0处有一个空白单元格,并且我希望能够禁用该单元格接收的所有触摸,并允许它后面的地图移动,但是当触摸索引1中的单元格时,单元格可以向上滚动而桌子的其余部分现在位于地图的顶部。Swift:禁用UITableViewCell触摸
如果有更好的方法来解决这个问题,我会尽力解决你的问题!
我有一个在MKMapView顶部的UITableView。我想要具有与Apple地图应用程序的工作方式类似的功能。你可以上下移动一张桌子,但仍然可以移动背后的地图。现在,我在索引0处有一个空白单元格,并且我希望能够禁用该单元格接收的所有触摸,并允许它后面的地图移动,但是当触摸索引1中的单元格时,单元格可以向上滚动而桌子的其余部分现在位于地图的顶部。Swift:禁用UITableViewCell触摸
如果有更好的方法来解决这个问题,我会尽力解决你的问题!
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,情况也是如此!
这样就可以停止单元格上的交互,但触摸不会通过单元格传递给地图。触摸仍然与单元格所在的表格进行交互。 – Averex
@Averex所以我很好奇,因为如果您将表格视图放在地图上方,并且第一个单元格不响应用户的触摸,它会如何影响MapView?当我看着苹果地图时,第一行(索引0)也拉起了桌子,但根本没有移动地图。所以我不确定你的意思是“触摸不通过单元格到地图”,因为据我所知,如果地图顶部有任何元素,并且你触摸它,那么地图不响应触摸。 –
要回答你的第一个问题,我希望空白单元格是一个缓冲区,以便索引1处的单元格可以在屏幕底部附近开始。我不希望用户使用空白单元格来移动表格,我只是希望它将其作为索引1单元格的缓冲区,然后触摸到空白单元格的任何内容都不会在表格上起作用,而是覆盖表格以允许地图在它后面被使用。 是否有任何其他方式使缓冲区没有空白单元格? – Averex
您可以禁用界面生成器中的单元格触摸,您将在其中找到名为Selection的tableview属性并将其设置为“No Selection”值。 – Hosny
@Hosny这只会让单元格不可选,但仍然允许非可选单元格移动单元格所在的表格。我需要单元格和表格不会在触摸移动时移动,但允许地图位于单元格和桌子移动。 – Averex