OGeek|极客世界-中国程序员成长平台

标题: objective-c - 同一个 UIButton 的多个实例? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 14:01
标题: objective-c - 同一个 UIButton 的多个实例?

问题

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

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

我在做什么

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

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

我的尝试:

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

button = [button copy];

这更多是代码格式问题,而不是问题,但我正在寻找对问题的更明智的见解

这个项目正在使用自动引用计数,如果这有什么改变的话。

提前致谢!



Best Answer-推荐答案


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

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

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

第四,UIButton不要conform to NSCopying ,所以你不能复制它们。

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

关于objective-c - 同一个 UIButton 的多个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10907496/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) Powered by Discuz! X3.4