我的应用程序中有一张地图,它从小地图开始,在用户点击后变大。
这是并排在 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)})
}
这与最初处于小状态时略有不同,因为 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 中的不同之处。