• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

objective-c - 同一个 UIButton 的多个实例?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 14:01:21 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

问题

我正在创建一个自定义 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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap