2012-06-06 52 views
2

的问题同一个UIButton的多个实例?

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

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

我在做什么

那么,我做的是设置XCOUNT为默认值,创造了第一个标签,然后创建了第一个“向上”和“向下”按钮添加之前标签和按钮作为子视图。

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

我已经试过什么:

我试过设置每个按钮是本身在每次使用后的副本(第1标签后和按钮添加到子视图),但是这给错误跑步。

button = [button copy]; 

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

该项目使用自动引用计数,如果这改变了任何东西。

在此先感谢!

回答

3

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

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

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

四,UIButton s不要conform to NSCopying,所以你不能复制它们。第五,你对记忆的担忧是没有根据的。只需创建你需要的按钮数量。

+0

谢谢,记忆问题只是我愚蠢。 @stroughtonsmith reccomended我写了一个方法来创建不同标签的按钮,并调用该方法3次。 –