【问题标题】:Set the center of custom MKAnnotationView设置自定义 MKAnnotationView 的中心
【发布时间】:2017-07-09 06:17:22
【问题描述】:

我正在使用自定义MKAnnotationView。我使用 autolayouts 工作正常,但注释视图的位置(框架)不合适。

func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView)
{
    if view.annotation is MKUserLocation
    {
        return
    }

    let starbucksAnnotation = view.annotation as! LiquorLocation
    let views = Bundle.main.loadNibNamed("CustomCalloutView", owner: nil, options: nil)
    let calloutView = views?[0] as! CustomCalloutView
    calloutView.labelLiquorShopName.text = starbucksAnnotation.title
    calloutView.labelLiquorShopAddress.text = starbucksAnnotation.address
    calloutView.labelLiquorShopAwayDistance.text = starbucksAnnotation.locationKmAway
    calloutView.imageViewLiquorShop.image = starbucksAnnotation.liquorShopIcon


    calloutView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(calloutView)
    mapView.setCenter((view.annotation?.coordinate)!, animated: true)
}

我做错了什么?我想在图钉顶部居中注释视图。

【问题讨论】:

    标签: swift3 mapkit mkannotation mkannotationview mapkitannotation


    【解决方案1】:

    Autolayouts 再次拯救我的一天。我在标注视图和视图(MKAnnotationView)之间添加了布局约束。我在didSelect 方法中写在view.addSubview(calloutView) 下面的行下面。

    let horizontalConstraint = NSLayoutConstraint(item: calloutView, attribute: NSLayoutAttribute.centerX, relatedBy: NSLayoutRelation.equal, toItem: view, attribute: NSLayoutAttribute.centerX, multiplier: 1, constant: 0)
            let verticalConstraint = NSLayoutConstraint(item: calloutView, attribute: NSLayoutAttribute.bottom, relatedBy: NSLayoutRelation.equal, toItem: view, attribute: NSLayoutAttribute.top, multiplier: 1, constant: 0)
            let widthConstraint = NSLayoutConstraint(item: calloutView, attribute: NSLayoutAttribute.width, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: calloutView.frame.size.width)
            view.addConstraints([horizontalConstraint, verticalConstraint, widthConstraint])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 2012-11-30
      • 2011-12-22
      • 1970-01-01
      • 2020-02-26
      • 1970-01-01
      • 2015-07-19
      相关资源
      最近更新 更多