【问题标题】:Accessing UIImageView file name work around访问 UIImageView 文件名变通
【发布时间】:2013-02-18 16:02:53
【问题描述】:

我查看了互联网,看到有类似问题的人,但不是完全相同的问题。

我正在为 iPhone 制作一款游戏,其中包含每个字母 (A-Z) 的图像。在游戏开始时,我将一个字母随机分配给 12 个不同的UIImageViews。为此,我创建了一个包含所有文件名的数组,然后使用rand() 为每个UIImageView 分配一个随机名称。

当用户点击一个字母时,我让它再次出现在正在构建答案词的不同区域中。然后我将字母设置为NULL,这样用户就不能再次使用它来回答他们的问题。

问题是,当字母得到答案时,如何区分它们的图像?所以我可以构造一个字符串,将它与字典进行比较,看看它是否是一个实际的单词。

我知道文件名丢失了,并且每个图像都是随机分配的。有没有更好的方法来处理这个问题。

【问题讨论】:

  • 为什么不用额外合成的 NSString 扩展 UIImageView,这样就可以保存存储在 UIImageView 中的字母?
  • 子类化 UIImage 就可以了

标签: iphone objective-c ipad uiimageview


【解决方案1】:

如果我理解正确,您想要一种简单的方法从 UIImageView 中找到回信。

选项 1(更好但更多的代码):

UIUmageView 继承并创建自己的类,命名为LetterImageView。向这个类添加一个名为letter 的属性,其中包含一个NSString。当你构造这个类的时候,还要设置 letter 属性。

不要使用原来的UIImageView,而是使用改进后的LetterImageView。这现在将记住哪个字母是哪个使用您的额外属性。

选项 2(更快但很老套):

任何视图都包含一个名为tag 的属性(这是一个NSInteger)。您可以将标签设置为您想要的任何值。它应该可以帮助您标记视图,然后根据它们的标签搜索它们。

如果您当前没有使用tag 属性,您可以将您的信件保存在那里.. 有点难看,但可以。只需为每个字母分配一个数字,例如 A 为 1,B 为 2,等等。当您构造 UIImageView 时,还要将字母保存在标签中。每当您想发现哪个字母出现在特定图像视图中时,只需检查标签即可。

【讨论】:

  • 感谢您的帮助,我对编程比较陌生。我喜欢选项一,但我不知道 UIImageView 不会知道它收到了哪个字母 png。这一切都是随机完成的。对于这个选项,我必须制作 26 个 LetterImageViews(每个字母一个),然后随机选择 12 个放在屏幕上。
【解决方案2】:

您可以使用 UIView 代替 UIImageView。 UIView 有一个属性 'tag' (NSInteger),您可以设置它以在以后识别您的视图(请参阅UIView tag

我发现talkol对我来说有点太快了......

【讨论】:

  • imaveView 也有同样的属性tag
猜你喜欢
  • 1970-01-01
  • 2013-07-17
  • 2016-07-29
  • 1970-01-01
  • 2016-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-20
相关资源
最近更新 更多