4

我的应用程序中有一张地图,它从小地图开始,在用户点击后变大。

这是并排在 iOS 10 和 iOS 11 中(小)

在此处输入图像描述

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

在此处输入图像描述

如您所见,在 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 按钮并撤消上述结果: 在此处输入图像描述

这与最初处于小状态时略有不同,因为 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 中的不同之处。

4

0 回答 0