问题
我正在创建一个自定义 UIView,我需要多个 UIButton 实例。我希望通过为每个按钮创建一个实例来节省内存(和代码!),然后使用标签来识别哪个按钮是哪个。我可以创建新的“向上”和“向下”按钮,但我想看看我能不能做得更聪明。
我设置它的方式是 3(应该适用于任何数字,但是)UILabels,每个按钮下方或上方分别有一个“向上”和“向下”按钮。我还对每个按钮的 CGPoint 位置进行计数,以匹配相应的 UILabel。
我在做什么
所以我正在做的是将 xCount 设置为默认值,创建第一个标签,然后在将标签和按钮添加为 subview 之前创建第一个“向上”和“向下”按钮。
接下来我增加 xCount,更改标签并为每个标签和两个按钮设置框架。但是,这会将第一个按钮移动到新框架(如预期的那样)。
我的尝试:
我尝试在每次使用后将每个按钮设置为自身的副本(在将第一个标签和按钮添加到 subview 之后),但这会在运行时出错。
button = [button copy];
这更多是代码格式问题,而不是问题,但我正在寻找对问题的更明智的见解。
这个项目正在使用自动引用计数,如果这有什么改变的话。
提前致谢!
Best Answer-推荐答案 strong>
首先,您对内存的担忧是没有根据的。只需创建所需数量的按钮即可。
其次,如果您更改按钮(或任何 View )的框架,那么它会移动。你不能在两个地方都有一个按钮。
第三,复制一个对象与从头创建两个对象使用的内存量相同;必须为副本分配新内存。
第四,UIButton 不要conform to NSCopying ,所以你不能复制它们。
第五,你对内存的担忧是没有根据的。只需创建所需数量的按钮即可。
关于objective-c - 同一个 UIButton 的多个实例?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/10907496/
|