我的应用中有一张地图以小地图开头,并在用户点击后变大。
这里是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版本不同的东西。