Skip to content

Instantly share code, notes, and snippets.

@wangzz
Created August 12, 2014 07:54
Show Gist options
  • Save wangzz/90a57629143d6d38f0b8 to your computer and use it in GitHub Desktop.
Save wangzz/90a57629143d6d38f0b8 to your computer and use it in GitHub Desktop.
记录遇到的小的知识点。
记录遇到的小的知识点。
@wangzz
Copy link
Author

wangzz commented Feb 10, 2015

hit-test

  • 流程

hit-test使用的是逆序递归遍历法:

It implements it by searching the view hierarchy using reverse pre-order depth-first traversal algorithm.

比如window上先后添加了A、B、C三个view:
traversal

那么屏幕上任何一点发生触摸事件时都会按如下顺序遍历:

** C 如果在C上继续递归遍历C的subview,不在C上则遍历B
** B 如果在B上继续递归遍历B的subview,不在B上则遍历A
** A 如果在A上继续递归遍历A的subview,不在A上则遍历A的上一级

直到找到一个包含点击区域的最上层view。

  • 关于多次调用hit-test

** iOS6 及之前系统会重复调用三次hit-test流程;
** iOS7 及之后系统会重复调用两次hit-test流程。

调用那么多次的原因不明。

  • 关于UITabbarController

点击包含UITabBar、UIToolBar等控件上方40像素区域内时,多次hit-test的最后一次中point值会发生随机变化,point的Y值会被增大若干不等的像素。

原因未知。

参考链接: Hit-Testing in iOS

@wangzz
Copy link
Author

wangzz commented Apr 13, 2015

升级Xcode插件失效解决办法

  • 查看Xcode对应版本的UUID:
tail -f /var/log/system.log
  • 更新插件配置文件

得到UUID后执行命令:

find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add XCode_UUID
  • 参考链接:

XCode升级后插件失效的原理与修复办法

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment