iOS小技能:获取屏幕坐标的方式

简介: 使用iOS API获取在屏幕上的点击坐标

前言

获取屏幕坐标的方式:

  1. LUA 函数touchDown(idx, x, y) 获取坐标
x,y 整数型 屏幕坐标

屏幕坐标,横坐标为 x,纵坐标为 y,单位为像素。

例如,iPhone 4 与 iPhone 4S 的屏幕分辨率 为 640 * 960,则其最大横坐标为 640,最大纵坐标为 960。

lua脚本常常作为触动精灵的代码,而进行辅助完成功能。

  1. 使用iOS API获取在屏幕上的点击坐标
  2. 先截图,然后用photoshop打开,用PS 去描点获取。

I 使用catchTouchPoint 函数实现点坐标的获取

获取用户点击的坐标


        --test
--获取用户点击的坐标 
         -- x,y = catchTouchPoint();

        -- sysLog("tcatchTouchPoint"..x..","..y);



        --end test
  • 结果日志
 * PID 2751
Oct 15 10:45:27 iPhone iCal135c[2751] <Warning>: tcatchTouchPoint367,732
Oct 15 10:45:57 iPhone iCal135c[2751] <Warning>: tcatchTouchPoint269,1112
Oct 15 10:48:26 iPhone iCal135c[2751] <Warning>: tcatchTouchPoint365,769
Oct 15 10:48:35 iPhone iCal135c[2751] <Warning>: tcatchTouchPoint459,565
Oct 15 10:53:29 iPhone iCal135c[2751] <Warning>: tcatchTouchPoint405,722
exit

II 使用iOS API获取在屏幕上的点击坐标

private demo

https://download.csdn.net/download/u011018979/14046495

2.1 创建UIApplication 子类,实现sendEvent:获取在屏幕上的点击坐标

//获取在屏幕上的点击坐标

- (void)sendEvent:(UIEvent *)event{
    if (event.type==UIEventTypeTouches) {
        UITouch *touch = [event.allTouches anyObject];
        
        if (touch.phase == UITouchPhaseBegan) {
            self.isMoved = NO;
        }
        
//        if (touch.phase == UITouchPhaseMoved) {//滑动
//            self.isMoved = YES;
//        }
        
        if (touch.phase == UITouchPhaseEnded) {
            
            
            if (!self.isMoved && event.allTouches.count == 1) {//非多点触控,非滑动
                
                
                UITouch *touch = [event.allTouches anyObject];
                
                //在屏幕上的点击坐标
                CGPoint locationPointWindow = [touch preciseLocationInView:touch.window];//touch.view
                
                
                
                NSLog(@"TouchLocationWindow:(%.1f,%.1f)",locationPointWindow.x,locationPointWindow.y);
                
                
            }
            self.isMoved = NO;
        }
    }
    [super sendEvent:event];
}

2.2 在main方法添加principalClassName

int main(int argc, char * argv[]) {
    NSString * appDelegateClassName;
    
    NSString * principalClassName;// The name of the UIApplication class or subclass. If you specify nil, UIApplication is assumed.


    @autoreleasepool {
        // Setup code that might create autoreleased objects goes here.
        appDelegateClassName = NSStringFromClass([AppDelegate class]);
        
        principalClassName =   NSStringFromClass([KNApplication4sendEvent class]);
        
        
        
        
        
        
    }
    

    return UIApplicationMain(argc, argv, principalClassName, appDelegateClassName);
    
    
}

see also

gzh:iOS逆向

目录
相关文章
|
JSON JavaScript 前端开发
iOS小技能: 开发 uni-app 原生插件(支持iOS Extension)
术语:uni原生插件指的是将`原生开发的功能按照规范封装成插件包`,然后即可在 uni-app 前端项目中通过js调用原生能力。
1154 0
iOS小技能: 开发 uni-app 原生插件(支持iOS Extension)
|
4月前
|
BI Linux 数据安全/隐私保护
忘了 iOS(iPad、IPhone) 设备上的「屏幕使用时间」密码怎么办?找回屏幕密码
忘了 iOS(iPad、IPhone) 设备上的「屏幕使用时间」密码怎么办?找回屏幕密码
138 0
|
7月前
|
iOS开发
iOS16.1系统由于一个系统弹窗无法取消,导致屏幕卡死无法关机问题及解决方案
iOS16.1系统由于一个系统弹窗无法取消,导致屏幕卡死无法关机问题及解决方案
827 0
|
安全 vr&ar 数据安全/隐私保护
iOS移动设备屏幕镜像电脑软件AirServer2023
AIrServer是一款ios投屏到mac的专用软件,可将iOS上的音频,视频,照片,幻灯片和镜像接收通过AIrPlay投射到Mac。AIrserver 7 mac版可以实现将手机上的媒体文件以及其他操作投射到电脑上进行操作。使用AIrServer,您现在可以从Mac,iOS,PC,
212 0
|
Android开发 iOS开发
iOS开发 - 商品详情页两种分页模式,只提供思路和实现方式。
iOS开发 - 商品详情页两种分页模式,只提供思路和实现方式。
420 0
iOS开发 - 商品详情页两种分页模式,只提供思路和实现方式。
|
iOS开发
iOS开发 - 滑动控制屏幕亮度和系统音量(附加AVAudioPlayer基本用法和Masonry简单使用)
iOS开发 - 滑动控制屏幕亮度和系统音量(附加AVAudioPlayer基本用法和Masonry简单使用)
230 0
iOS开发 - 滑动控制屏幕亮度和系统音量(附加AVAudioPlayer基本用法和Masonry简单使用)
|
安全 iOS开发
iOS小技能:下拉刷新控件的适配
1. 下拉顶部背景色设置: 往tableView的父控件添加拉伸背景视图 2. present 半屏适配 iOS13 modalPresentationStyle属性默认不是全屏样式`UIModalPresentationFullScreen`,而是半屏样式,需要根据需求手动设置。 present 半屏,会导致列表下拉刷新失效。
211 0
iOS小技能:下拉刷新控件的适配
|
iOS开发 Python
iOS小技能:lldb打印block参数签名
iOS逆向时经常会遇到参数为block类型,本文介绍一个lldb script,可快速打印出Objective-C方法中block参数的类型。
203 0
iOS小技能:lldb打印block参数签名
|
JSON JavaScript 前端开发
iOS小技能: 开发 uni 原生插件(支持iOS Extension)
背景:app采用uni实现 需求: iOS App前台后台离线(杀死情况下)推送语音播报(到账xx元、收款播报、自定义推送铃)。 实现方式:uni-app 原生插件(支持iOS Extension)
487 0
iOS小技能: 开发 uni 原生插件(支持iOS Extension)
|
安全 iOS开发 开发者
iOS小技能:重签名、打包脚本
重签名需求:改变了应用的二进制文件,或者增加、修改了应用里面的资源,应用本身的签名就会被破坏。
274 0
iOS小技能:重签名、打包脚本