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

iOS系统如何通过x、y坐标实现屏幕指定位置点击操作?

iOS全局坐标点击实现方案

可以通过全局屏幕的x、y坐标点击指定点位,你之前的代码未生效是因为存在两个常见问题:

  1. 没有对Pixelmator测量得到的像素坐标和iOS原生的点坐标做缩放适配
  2. 坐标原点默认取的是app可显示区域的左上角,而非全局屏幕左上角,会被安全区域、刘海/灵动岛等区域的偏移影响

正确实现代码

func tapGlobalCoordinate(x: CGFloat, y: CGFloat) {
    // 将测量得到的像素坐标转为iOS用的点坐标,适配不同设备的@2x/@3x缩放比例
    let screenScale = UIScreen.main.scale
    let targetPointX = x / screenScale
    let targetPointY = y / screenScale
    
    // 以全局屏幕左上角为坐标原点
    let globalBase = XCUIApplication().coordinate(withNormalizedOffset: CGVector(dx: 0, dy: 0))
    let targetCoordinate = globalBase.withOffset(CGVector(dx: targetPointX, dy: targetPointY))
    targetCoordinate.tap()
}

使用注意事项

  • 你测量得到的按键a像素坐标x=100、y=1800需要先除以对应测试设备的缩放因子再传入,比如iPhone 14系列为@3x,转换后点坐标为x≈33.33、y=600
  • 如果需要点击app外的系统级区域(比如状态栏、控制中心),需要将XCUIApplication的目标改为系统桌面进程,示例:let app = XCUIApplication(bundleIdentifier: "com.apple.springboard"),再进行坐标计算即可
  • 普通沙盒内的app仅支持点击自身显示区域内的坐标,系统级全局点击需要额外的辅助功能权限或者越狱环境支持

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 03:36:03