如何制作 UIComponent 的精确副本? (iPad)

Posted

技术标签:

【中文标题】如何制作 UIComponent 的精确副本? (iPad)【英文标题】:How can I make an exact replica of a UIComponent? (iPad) 【发布时间】:2012-03-21 19:02:54 【问题描述】:

我需要在我的应用程序中创建多个 UIComponents 的精确副本。这方面的一个例子是UILabel。我在界面生成器中创建了两个UILabels,然后将它们链接起来。

接下来我做了如下:

self.myLabel_a.text = @"Blah blah blah";
// ... and some other settings (eg. font size, colour, etc.)
self.myLabel_b = self.myLabel_a;

但是,当我运行我的应用程序时,我看不到预期的效果。请有人就为什么会发生这种情况提出建议。如果这是一个新手问题,我很抱歉,但是我不明白这里的问题以及如何解决它。

【问题讨论】:

您所体验的是指针如何工作的基础知识。 myLabel_a 指向 UILabel。然后将myLabel_b 设置为myLabel_a,这将使它也指向相同的UILabel。您需要两个独立的UILabels,如果您希望它们始终显示相同的内容,您需要编写代码来同步它们。 【参考方案1】:

您的代码现在只是分配引用,而不是“复制”。为了支持真实副本,您需要实现NSCopying 协议。 UILabel 不符合NSCopying,你不能只是“复制”。

请参阅以下问题:

How to duplicate an object in Objective C? How to copy an object in objective c

【讨论】:

以上是关于如何制作 UIComponent 的精确副本? (iPad)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 XSLT 制作 xml 节点的子节点的精确副本?

制作一个 uiview 的精确副本,除了制作它的精确副本实例外,它希望永远不会被自己使用

制作包含所有内容和属性的段落的精确副本?

Flex:将未实现的 UIComponent 渲染到 BitmapData?

如何设置 SMO ScriptingOptions 以保证表的精确副本?

如何在运行时知道 UIComponent 的宽度?