【问题标题】:Is there a supported way to glean properties from a nib file without initializing an actual object?是否有一种支持的方法可以在不初始化实际对象的情况下从 nib 文件中收集属性?
【发布时间】:2013-07-04 21:22:31
【问题描述】:

我有一个 XIB 文件,我想获取其中第一个对象的 frame 属性,而无需实际取消归档 nib 并从中实例化一个对象。

我知道 XIB 只是 XML,这是可以做到的,但我想知道是否有支持的方式来执行此操作,如果/当 Apple 更改 XIB 文件结构时不会中断。

原因很简单,我有一个用于 UITableViewCell 的 XIB,而在 tableView:heightForRowAtIndexPath: 中,我想返回我在 Interface Builder 中设置的任何高度。

【问题讨论】:

    标签: xcode cocoa-touch cocoa interface-builder xib


    【解决方案1】:

    据我所知,这不是一种受支持的方式。 nib 的想法是你不需要知道你可以在 awakeFromNib 中设置值

    您也可以简单地对其进行硬编码或将其存储在 plist 中以在 awakeFromNib 中使用

    【讨论】:

      【解决方案2】:

      不,不实例化内容没有可靠的方法。

      您应该为高度保留一个变量,最初设置为 -1 或类似值,当您加载 NIB 检查并更新该值时。可以说,您可以预先执行此操作,因为可以将单元格添加到重用池中,这样您就不会增加整体内存使用量。

      【讨论】:

      • 那行得通...如果 UITableView 在询问高度之前询问代表单元格,是吗? (可靠吗?)
      • 不,它首先要求高度。但是,如果单元格是在表格视图中注册的,那么您只需将一个实例出队即可。
      猜你喜欢
      • 2022-08-14
      • 1970-01-01
      • 2022-01-18
      • 2017-07-20
      • 1970-01-01
      • 2019-05-09
      • 1970-01-01
      • 1970-01-01
      • 2012-05-15
      相关资源
      最近更新 更多