objective-c - 如何获取从 Nib 加载的 UIView 的多个副本?

标签 objective-c iphone interface-builder

我想多次使用一个 UIView 层次结构(nib 对象是一个模板)。不幸的是,UIView 不符合 所以

[cell.contentView addSubview: [[templEditCellView copy] autorelease]];

不起作用。

我并不感到惊讶,因为我想要 View 层次结构的深拷贝。

目前,该 View 是从其加载的 nib 中的几个顶级对象之一。有没有办法从 Nib 重新加载单个指定的顶级对象?我应该将 View 拆分为一个可以按需重新加载的 NIB 吗?还是有另一种方法来制作 View 的深拷贝?

谢谢!

最佳答案

制作 View 深拷贝的最简单方法是对其进行归档和取消归档。

id copyOfAView = 
  [NSUnarchiver unarchiveObjectWithData:
    [NSArchiver archivedDataWithRootObject:aView]]; 

将 View 放在它自己的 Nib 中也可以。您可以创建一个 NSNib 对象并根据需要多次重新加载它。

关于objective-c - 如何获取从 Nib 加载的 UIView 的多个副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2789475/

相关文章:

iphone - 将 CALayer 用于 UITableViewCell

iphone - 如何在 swift 中将类实例设置为 userdefaults?

ios - 当从 contentSize 给出 tableview 高度时,不调用 cellForRowAt indexPath

ios - iOS 的 Interface Builder 中没有 IBOutlets

ios - UIScrollView + 居中 View + 不明确的可滚动内容大小 + 许多 iPhone 大小

objective-c - 将代码从 Objective-C 转换为 Swift 问题

objective-c - "Null is returned from a method that is expected to return a non-null value"与 cellForRowAtIndexPath

iphone - NSFileHandle fileHandleForReadingFromURL 抛出异常

ios - UITableView 不显示 IOS 7 中的单元格

objective-c - 在界面构建器和模块化中使用 'external object'