1

我已经尝试了几天来解决这个问题 - 我知道这很简单,我可能错过了,但作为 iOS 新手,我想我在某个地方错过了一些东西。

我在 XCode 中有一个图像视图数组,每个图像视图都分配了一个帧,我似乎无法开始工作的是我想在 if else if 语句之类的东西中比较数组中每个对象中的每个帧.. .我不知道如何让系统做这样的事情......

如果索引 0 处的数组对象中的帧是 (0,0) (90,90) 则执行某些操作,或者如果是 (90,90) (90,90) 则执行此操作,否则执行此操作...

我知道 if else 语句是如何工作的——我想我的主要问题是如何访问数组中对象的框架部分以进行比较?

我很困惑。请帮忙。我很感激。:)

4

3 回答 3

1

好吧,我看到了其他答案,但我认为 OP 想知道如何遍历视图数组。所以,这是这样做的方法:

for(UIImageView *imgView in yourViewsArray)
{
   if([imgView isMemberOfClass:[UIImageView class]])
   {
       //insert IF statements here like the other answers showed.
   }
}
于 2012-09-29T12:32:04.513 回答
0

使用该CGRectContainsRect(CGRect rectReference, CGRect rectToCompareTo)功能。

rectToCompareTo如果在里面,它将返回 YES rectReference

您可以在这里找到更多类似的功能: https ://developer.apple.com/library/ios/#documentation/graphicsimaging/reference/CGGeometry/Reference/reference.html

于 2012-09-29T12:24:11.897 回答
0

我想您必须分别比较 CGRect 中的每个属性。

CGRect aRect = [[array objectAtIndex:0] frame];
if (aRect.origin.x == 0 && aRect.origin.y == 0 && aRect.size.width == 90 && aRect.size.height == 90){
    //do something
}
else if (aRect.origin.x == 90 && aRect.origin.y == 90 && aRect.size.width == 90 && aRect.size.height == 90){
    //do something else 
}

可能只有您在条件语句中关注的 origin.x,然后您可以简单地

CGRect aRect = [[array objectAtIndex:0] frame];
if (aRect.origin.x == 0){
    //do something
}
else if (aRect.origin.x == 90){
    //do something else 
}
于 2012-09-29T12:24:34.640 回答