You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode15 Beta4/iOS17 Beta4下SwiftUI Map缩放时自动旋转问题

SwiftUI Map缩放时自动逆时针旋转问题排查(iOS 17 Beta 4/Xcode 15 Beta 4)

环境

Xcode 15 Beta 4、iOS 17 Beta 4

复现代码

import SwiftUI
import MapKit

struct ContentView: View {
    
    @State private var position: MapCameraPosition = .userLocation(followsHeading: true, fallback: .automatic)

    var body: some View {
        ZStack {
            Map(position: $position)
        }
        .mapControls {
            MapUserLocationButton()
            MapScaleView()
        }
    }
}

问题现象

点击定位按钮使地图以用户位置为中心并跟随航向,之后仅执行缩放操作(不进行旋转或平移),地图会立即绕用户位置逆时针旋转,现象如下:
地图缩放时自动旋转现象

排查建议与已知原因

  • 这属于iOS 17 Beta版本的常见未修复bug。Beta阶段的SwiftUI Map/MapKit组件常存在交互逻辑冲突,尤其是航向跟随模式下的手势处理漏洞。
  • 测试不同跟随模式:将position初始化为.userLocation(followsHeading: false),点击定位按钮后再手动开启航向跟随,观察缩放时是否仍触发旋转;或在缩放操作时临时关闭航向跟随,完成后再恢复。
  • 排查手势映射问题:Beta版本中可能存在缩放手势被错误解析为旋转事件的情况,可尝试自定义缩放手势替代系统默认手势,验证是否能规避该问题。
  • 参考Apple开发者论坛反馈:不少同类Map交互bug会在论坛被讨论,可确认是否有其他开发者遇到相同问题,以及Apple是否提供临时方案或修复计划。
  • 升级至最新Beta版本:后续发布的Beta版本通常会修复这类交互问题,更新后重新测试场景。
  • 对比UIKit实现:用UIKit的MKMapView编写相同逻辑,查看是否出现同样问题,以此判断是SwiftUI封装层的问题还是底层MapKit的bug。

内容的提问来源于stack exchange,提问作者Rhythmus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 01:45:05