1

好的,所以我有一个 UIImageView 的 IBOutlet,如下所示:

.h
@property (nonatomic,retain) IBOutlet UIImageView *ground;

然后我可以使用像这样的变量“ground.frame”在我的代码中看起来像这样:

.m
if (CGRectIntersectsRect(player.frame,ground.frame)) {
   "STUFF"
}

这很好用,但后来我发现我需要一个“IBOutletCollection”。我为此更改了 .h 代码:

.h
@property (nonatomic,retain) IBOutletCollection(UIImageView) NSArray *ground;

现在我不知道如何让另一个工作,因为它给了我一个错误,告诉我“在 NSArray 类型的对象上找不到框架。” 所以我的问题是如何更改 .m 文件中的代码,使其工作方式与以前相同,但现在作为数组工作?

谢谢

4

1 回答 1

1

该数组是 UIImageViews 的集合,因此您可以从数组中取出一个对象并查询它。

也许...

for(UIImageView *xground in ground)
{

if (CGRectIntersectsRect(player.frame,xground.frame)) {
   //do stuff 
   break;

}

}

您向数组中的每个视图询问其框架。

如果您想真正偏执,请对对象进行类检查以确保它是来自数组的 UIImageView,但可能没有必要,因为您已经将其声明为 UIImageView 数组。

于 2011-11-27T09:37:07.557 回答