因此,当像这样选择选定的表格单元格时,便能够使注释的标注具有动画效果。由于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个以上的行是超出范围的。
答案 0 :(得分:0)
IndexPath
例如
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)
}