iOS私有API(一) -[UIApplication _cancelAllTouches]

 这个api会令当前的所有手指操作失效,即令所有的UITouch变成cancelled状态,所有的UIView和UIGestureRecognizer都会触发touchesCancelled:withEvent:事件。

使用场景:

1. 模拟UIPopoverController时的行为,当popover弹出时,其他手势都应该被cancelled掉,从而保证popover弹出后继续移动手指不会再产生事件。(UIPopoverController就有使用这个函数,UIActionSheet应该也有,UIAlertView不确定,因为它有自己的window)

2. 响应多指操作时,如果发生旋转屏幕的事件,这时候后续的响应一般很难处理,每个touch都得自己计算旋屏后的位置,不如干脆不允许用户在旋屏后操作算了,这时就可调用这个函数。

调用方法:

SEL sel = NSSelectorFromString([@"_cancel" stringByAppendingString:@"AllTouches"]);  // Private API
assert([[UIApplication sharedApplication] respondsToSelector:sel]);
[[UIApplication sharedApplication] performSelector:sel]; 
时间: 2024-11-03 16:00:37

iOS私有API(一) -[UIApplication _cancelAllTouches]的相关文章

iOS私有API(三) UIWebView下的手势识别器gestureRecognizer

 首先,UIWebView本身之上并没有手势识别器(gesture recognizer,下面简称手势),而是其子view有. 通过gdb或lldb,我们很容易看到UIWebView的subviews层级关系,下面是使用一个UIWebView打开百度首页时的情况: (lldb) po [g_webView recursiveDescription] $0 = 0x0ab202e0 <UIWebView: 0x7577160; frame = (0 78; 768 926); autoresize

iOS私有API(二) UIGestureRecognizerDelegate的两个函数

UIGestureRecognizerDelegate有两个没公开的函数,只要重载了就会被调用. 即所有的UIGestureRecognizer子类.delegate = someInstance; 经过set以后,只要这个delegate实例里有这两个函数,就会被调用进入.经过验证,这两个api是可以通过apple审查上app store的. - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer canBePrev

iOS开发之私有API No.1 私有API的查找和生成

最近研究一个应用,可以在un-jailbreak的情况下打开4G功能,是的,就是很火的"移动流量仪",想要知道他是如何做到的,正好我的手机已经jailbreak了,打开SSH通道,然后用find -mmin 1 命令来查看1分钟内改动后的文件,发现是修改了系统的一个配置文件.于是就猜测应该是调用了私有的API.就顺着查下去,先从私有API说起吧: 一.关于苹果API: 1.Published API(公开的API):又称 Documented API(文档中记录的API).是苹果通过

iOS软件被曝使用私有API:你的数据被偷了

不同的配方,相同的味道.App Store 一直都在飞快地发展,现在这块蛋糕越来越大,尤其是在中国地区.所以,想要从这块蛋糕上尝到甜头的人也越来越多.做法正经的,我们叫他们商人;做法不正经的,我们只能称之为奸商甚至是犯罪份子了.可怜开发者,要背锅了. 罪恶之源被曝光 "我们已经了解到,一系列采用第三方移动广告 SDK 进行开发的 iOS 软件会通过私人 API 擅自收集用户的个人信息,包括邮箱地址.设备序列号以及路由数据等等.然后,这些软件把用户数据传向一家名为有米的移动广告供应商所设的服务器,

iOS 画面切换的各种动画效果附私有API

ios的画面切换的动画效果的API主要通过调用系统已定义的动画效果实现,这些效果已基本囊括开发的需求,如果需要更加复杂的效果,可以考虑CATransition来实现 以下是基本的四种效果 kCATransitionPush 推入效果 kCATransitionMoveIn 移入效果 kCATransitionReveal 截开效果 kCATransitionFade 渐入渐出效果 以下API效果可以安全使用 cube 方块 suckEffect 三角 rippleEffect 水波抖动 page

IOS打包验证时,提示使用了私有API的问题

提示有setCities等私有API,于是打包没通过, 这是由于 使用了百度地图SDK的缘故,只需要在other link flags中设置一个参数:-ObjC 这样就可以解决这个问题了.

使用了私有API:_locale_charset

问题描述 使用了私有API:_locale_charset 解决方案 IOS打包验证时,提示使用了私有API的问题

[WebKit]遭遇Mac OS私有API

WebKit并不是完全开源的, Apple封装了一部代码在一个静态库(libWebKitSystemInterfaceXXXX.a)中,并没有提供源代码.而且不同版本的OS (包括iOS),会有特定的版本. 这就是我今天从分析中了解到的, 觉得过程比较有趣,记录一下. 1. 在WebKit中有这样一段源代码 (Laguage.mm): static String httpStyleLanguageCode(NSString *languageCode) { ASSERT(isMainThread

iphone SprintBoard部分私有API总结

本文介绍iOS SrpintBoard框架的部分私有API,具体包括: 获取ios上当前正在运行的所有App的bundle id(不管当前程序是在前台还是后台都可以) 获取ios上当前前台运行的App的bundle id(不管当前程序是在前台还是后台都可以) 根据ios app的bundle id得到其App名称.图标(不管当前程序是在前台还是后台都可以) 直接通过App 的bundle id来运行该App,无需使用url scheme(仅限当前程序在前台时,假如程序在后台能随便运行其他App,