同一个UIButton的多个实例?

时间:2012-06-06 02:36:24

标签: objective-c ios multiple-instances

问题

我正在创建一个自定义UIView,我需要UIButton的多个实例。我希望通过创建每个按钮的一个实例来保存内存(和代码!),然后使用标签来识别哪个按钮是哪个。我可以创建新的“向上”和“向下”按钮,但我想知道我是否可以更聪明地做到这一点。

我设置它的方式是3( 适用于任何数字,但是)UILabels,每个按钮下方或上方分别有一个“向上”和“向下”按钮。我还使用每个按钮的CGPoint位置计数,以匹配相应的UILabel。

我在做什么

所以我正在做的是将xCount设置为默认值,创建第一个标签,然后在将标签和按钮添加为子视图之前创建第一个“向上”和“向下”按钮。

接下来,我增加xCount,更改标签并为每个标签和两个按钮设置框架。但是,这会将第一个按钮移动到新帧(如预期的那样)。

我尝试了什么:

我尝试在每次使用后将每个按钮设置为自身的副本(在第一个标签和按钮添加到子视图之后),但这会在运行时出错。

button = [button copy];

这更像是一个代码格式问题,而不是一个问题,但我正在寻找一些更明智的洞察问题:)。

此项目正在使用自动引用计数,如果这会改变任何内容。

提前致谢!

1 个答案:

答案 0 :(得分:3)

首先,你对记忆的担忧是没有根据的。只需创建所需的按钮数量即可。

其次,如果更改按钮(或任何视图)的框架,则会移动。你不能在两个地方有一个按钮。

第三,复制对象使用的内存量与从头开始创建两个相同;必须为副本分配新的内存。

第四,UIButton s不conform to NSCopying,因此您无法复制它们。

第五,你对记忆的担忧是没有根据的。只需创建所需的按钮数量即可。