内容滚动到键以外的索引路径的行?

时间:2018-06-30 08:03:39

标签: swift uitableview mapkit

因此,当像这样选择选定的表格单元格时,便能够使注释的标注具有动画效果。由于indexPath非常简单。

  func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let indexPath = indexPath.row
    myMap.selectAnnotation(pinArray[indexPath] , animated: true)
}

但是,当我选择注释并希望表单元格点亮时,我不明白如何实现此目的。我一直在尝试将var设置为indexPath,但是由于注释没有下标,因此无法执行此操作。因此,我如何能够完成对选定单元格逻辑的注释?

func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
    //Magic
}

更新- 目前,我要突出显示与地图注释相关的表格单元格的代码是这个。

  func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {

    let index = pinArray.index(of: view.annotation as! AnnotationPin)

    let indexPath = IndexPath(row: index!, section: 0)

    myTable.selectRow(at: indexPath, animated: true, scrollPosition: .top)

}

不幸的是,当我单击地图注释时,会收到此错误消息。

  

-[UITableView _contentOffsetForScrollingToRowAtIndexPath:atScrollPosition:usingPresentationValues:]:第(0)节的第(72)行超出了界限(17)。

我不明白,因为数组只有12个记录顶部,所以我完全不知道如何提到15个以上的行是超出范围的。

1 个答案:

答案 0 :(得分:0)

  1. 从选定的注释中获取pinArray的索引
  2. 制作IndexPath
  3. 选择TableView的行

例如

func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
    // Get index of pinArray
    let index = pinArray.index{$0 === view.annotation}

    // Make IndexPath
    let indexPath = IndexPath(row: index, section: 0)

    // Select row of TableView
    tableView.selectRow(at: indexpath, animated: true, scrollPosition: .bottom)
}