AliSoftware/Reusable

MKMapView support

igorkulman opened this issue · 0 comments

This library is obviously concentrated on UITableView and UICollectionView support but MKMapView has a lot of the same concepts: registering annotations and dequeuing them.

I currently use a simple extension for that

extension MKMapView {
    final func register<T: MKAnnotationView>(annotationType: T.Type)
      where T: Reusable {
        self.register(annotationType.self, forAnnotationViewWithReuseIdentifier: annotationType.reuseIdentifier)
    }

    final func dequeueReusableAnnotation<T: MKAnnotationView>(annotationType: T.Type = T.self) -> T
    where T: Reusable {
        guard let view = self.dequeueReusableAnnotationView(withIdentifier: annotationType.reuseIdentifier) as? T else {
          fatalError(
            "Failed to dequeue a annotation view with identifier \(annotationType.reuseIdentifier) matching type \(annotationType.self). "
              + "Check that the reuseIdentifier is set properly in your XIB/Storyboard "
              + "and that you registered the annotation view beforehand"
          )
        }
        return view
    }
}

I wonder if you be willing to add MKMapView support. I can provide this extension as a PR together with some documentation and maybe even a sample.