Xcode 如何使用UIImageView的属性,例如“我们”;中心.x“;及;“框架”;当它是IBOutletCollection数组时?
好的,我有一个UIImageView的IBOutlet,看起来像这样:Xcode 如何使用UIImageView的属性,例如“我们”;中心.x“;及;“框架”;当它是IBOutletCollection数组时?,xcode,uiimageview,nsarray,iboutlet,outlet,Xcode,Uiimageview,Nsarray,Iboutlet,Outlet,好的,我有一个UIImageView的IBOutlet,看起来像这样: .h @property (nonatomic,retain) IBOutlet UIImageView *ground; .m if (CGRectIntersectsRect(player.frame,ground.frame)) { "STUFF" } 然后我可以使用如下变量“ground.frame”,在我的代码中如下所示: .h @property (nonatomic,retain) IBOutlet
.h
@property (nonatomic,retain) IBOutlet UIImageView *ground;
.m
if (CGRectIntersectsRect(player.frame,ground.frame)) {
"STUFF"
}
然后我可以使用如下变量“ground.frame”,在我的代码中如下所示:
.h
@property (nonatomic,retain) IBOutlet UIImageView *ground;
.m
if (CGRectIntersectsRect(player.frame,ground.frame)) {
"STUFF"
}
这很好,但后来我发现我需要一个“iBootletCollection”。我为此更改了.h代码:
.h
@property (nonatomic,retain) IBOutletCollection(UIImageView) NSArray *ground;
现在我不知道如何使另一个工作,因为它给我一个错误,告诉我“在NSArray类型的对象上找不到帧。”
因此,我的问题是如何更改.m文件中的代码,使其工作方式与以前相同,但现在作为一个数组
感谢该数组是UIImageView的集合,因此您可以从数组中取出一个对象并进行查询 也许
for(UIImageView *xground in ground)
{
if (CGRectIntersectsRect(player.frame,xground.frame)) {
//do stuff
break;
}
}
可以询问阵列中每个视图的帧
如果您真的想变得偏执,请对该对象运行类检查,以确保它是来自数组的UIImageView,但可能没有必要,因为您已经将其声明为UIImageView的数组。该数组是UIImageView的集合,因此您可以从数组中取出一个对象并查询该对象 也许
for(UIImageView *xground in ground)
{
if (CGRectIntersectsRect(player.frame,xground.frame)) {
//do stuff
break;
}
}
可以询问阵列中每个视图的帧
如果你真的想成为偏执狂,对对象运行一个类检查,以确保它是从数组中发出的UIImageView,但可能没有必要,因为你已经将它声明为UIImageView数组。这不起作用。还有别的办法吗?我只想将多个对象分配给同一个插座,以便它们都执行相同的操作。谢谢什么不起作用?查询集合中的所有视图?您确定所有ImageView都已连接到IBS中吗?查询集合上的所有视图是什么意思?它们连接在IB中。回到你的第一个答案,我只需要添加for循环,对吗?或者我还需要做些什么?谢谢注意你最初陈述的xground vs ground的mod。那不起作用。还有别的办法吗?我只想将多个对象分配给同一个插座,以便它们都执行相同的操作。谢谢什么不起作用?查询集合中的所有视图?您确定所有ImageView都已连接到IBS中吗?查询集合上的所有视图是什么意思?它们连接在IB中。回到你的第一个答案,我只需要添加for循环,对吗?或者我还需要做些什么?谢谢注意原始声明中的mod xground vs ground。