【问题标题】:Debugging subtle iOS view layout issues调试微妙的 iOS 视图布局问题
【发布时间】:2012-02-16 00:11:31
【问题描述】:

最近我在 iOS 应用中遇到了一些微妙的布局问题。例如,从应用程序的一部分显示 viewController 会导致某些子视图的布局发生更改(z 轴顺序更改)。另一个微妙的问题是导航栏轻微闪烁。

有哪些技术可以调试这些问题?

我对打印/记录对象的属性特别感兴趣。例如,我只想转储/打印/记录上面引用的 viewController 的所有属性,以查看究竟发生了什么变化。那么也许可以使用符号断点来查明原因。

【问题讨论】:

    标签: objective-c ios debugging object uiviewcontroller


    【解决方案1】:

    查看DCIntrospect。这是一个非常有助于方便查看视图信息的工具。

    【讨论】:

      【解决方案2】:

      您可以使用 KVO 来观察帧的变化,这样您就可以知道什么时候发生了什么变化,从什么值开始变化。您甚至可以使用它将属性修复为某个常量值。 (见Prevent indentation of UITableViewCell (contentView) while editing

      您可以使用反射来循环遍历对象的所有属性。我不知道如此广泛的方法对您有何帮助,但这是可能的。 (见Loop through all object properties at runtime

      【讨论】:

        【解决方案3】:

        另一种使用的技术是使用重写方法对 UIView 进行子类化,以重新定位视图或其他方面 - 然后您可以设置断点或在框架更改或其他属性时记录。

        要使用 UIView 调试类,您只需将 InterfaceBuilder 中的 View 类型更改为您的自定义视图类型,而不是 UIView。

        【讨论】:

          【解决方案4】:

          使用 iOS App 布局调试工具 revealapp.com 只需将revealapp SDK集成到您的应用中并作为萤火虫工作

          【讨论】:

            猜你喜欢
            • 2014-11-13
            • 2013-06-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-06-24
            • 1970-01-01
            相关资源
            最近更新 更多