Содержание Прокрутить до Строка в Путь индекса за пределами облигаций? - PullRequest
0 голосов
/ 30 июня 2018

Таким образом, я смог анимировать выноску аннотации, когда выбранная ячейка таблицы была выбрана следующим образом. Довольно просто благодаря indexPath.

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

Однако я не понимаю, как этого добиться, когда я выбираю аннотацию и хочу, чтобы ячейка таблицы загорелась. Я пытался установить переменную для 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:]: строка (72) за пределами (17) для раздела (0).

Я не понимаю, поскольку в массиве всего 12 записей, поэтому я совершенно не понимаю, как можно упомянуть, что строка выше 15 выходит за границы.

1 Ответ

0 голосов
/ 30 июня 2018
  1. Получить индекс pinArray из выбранной аннотации
  2. Марка IndexPath
  3. Выберите строку TableView

1010 *, например *

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)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...