MapKit缩放问题

时间:2017-10-17 01:00:36

标签: swift swift3 mapkit mkcoordinateregion

我的应用中有一张地图以小地图开头,并在用户点击后变大。

这里是iOS 10和iOS 11并排(小)

enter image description here

当用户点击地图时,它会变为全屏并显示为(再次iOS 10 - iOS 11):

enter image description here

如您所见,在iOS 11中,由于某种原因,它似乎放大了。

以下是与点击地图相关的功能:

@objc fileprivate func mapTap(sender: UITapGestureRecognizer){
    self.mapViewHeight.constant = self.view.frame.height + 2
    self.mapViewToTop.constant = -73
    self.mapView.isScrollEnabled = true
    self.mapView.isZoomEnabled = true
    self.scrollView.isScrollEnabled = false
    UIApplication.shared.hideStatusBar(false)

    UIView.animate(withDuration: 0.35, delay: 0, usingSpringWithDamping: 1.0, initialSpringVelocity: 0, options: UIViewAnimationOptions.curveLinear, animations: {
        self.view.layoutIfNeeded()
        self.scrollView.layer.zPosition = 10
    }, completion: {
        done in
        self.mapXButtonTrailing.constant = 20
        self.mapXButton.layer.zPosition = 11
        UIView.animate(withDuration: 0.2, delay: 0, options: .curveEaseOut, animations: {
            self.view.layoutIfNeeded()
        }, completion: nil)})

}

最后:点击X按钮并撤消上述结果: enter image description here

这与最初处于小状态时略有不同,因为iOS 11版本通过略微缩小再次对缩放/设置区域做了一些事情。

我应该注意,为了使地图的初始小负载为iOS 11和iOS 10正确渲染相同的区域,我必须执行以下操作:

        self.region = MKCoordinateRegion()
        self.region.center = location
        if #available(iOS 11.0, *){
            self.region.span.latitudeDelta = delta
            self.region.span.longitudeDelta = delta
        }else{
            self.region.span.latitudeDelta = delta * 3.5
            self.region.span.longitudeDelta = delta * 3.5
        }

iOS 11版本再次出现了与iOS 10版本不同的东西。

0 个答案:

没有答案