如何在iOS应用程序的运行时提取有关UI元素的信息?

时间:2012-03-16 20:21:52

标签: iphone objective-c ios uiview

在iOS应用程序(iPhone)的运行时,有没有办法可以从应用程序的内存中提取有关UI元素(UIView)的信息。就像获取对当前UIView元素的引用并找到一种方法来枚举该视图中包含的所有UI元素并动态创建应用程序的UIView调用的抽象图形?

2 个答案:

答案 0 :(得分:1)

既然看起来你可能会对一些一般的建议感兴趣,我会给你这个:看看DCIntrospect(available on github, with good documentation)。

使用这个开源软件,您可以检查UI中UIView的子类。您可以在控制台中看到它的许多属性。

它非常易于使用。我试过了,这是一个非常简单的添加到我的应用程序委托。要启用它,请按键盘上的空格键。

由于它是开源的,您可以检查代码并亲自查看可用的UI元素属性,甚至自己进行更改。

答案 1 :(得分:0)

UIView附带了一个未记录的函数来执行此操作:-recursiveDescription。它不像DCIntrospect那么漂亮,但您不必为项目添加任何内容。只需:

NSLog(@"%@", [view recursiveDescription]);

或者您可以从调试器中调用它:

p [view recursiveDescription]

有关详细信息和其他有趣的调试命令,请参阅Apple的Technical Note 2239(滚动到底部)。