我在集合视图单元格中构建地图视图。我的要求是自定义注释视图。
我尝试使用view for annotation delegate。但我需要将一些数据从视图控制器传递到单元格以进行自定义。
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
let identifier = "Pin"
var pinView = mapView.dequeueReusableAnnotationView(withIdentifier: identifier)
pinView = MKAnnotationView(annotation: annotation, reuseIdentifier: identifier)
if let title = location?.title {
pinView.title = title
}
像这样的初始化
以下是在indexPath上创建单元格cellForRow中的单元格的代码:
let cell = collectionView.dequeueReusableCell(withReuseIdentifier:
CellID.mapViewCell.identifier, for: indexPath) as! MapViewCell
cell.configureMapCell(location: location)
return cell
我尝试在单元格初始化后传递数据,但它是零。 当我在视图控制器上执行此操作时,我在viewWillAppear中执行了它,它很好。但是在细胞中,我不知道如何在细胞初始化之前做到这一点。
更新:解决了问题 我需要在传递给单元格的位置数据后添加AnnotationView。添加注释时,委托函数将调用并具有位置数据。