Objective c UIImageView数组帧相等

Objective c UIImageView数组帧相等,objective-c,cocoa,uiimageview,nsmutablearray,Objective C,Cocoa,Uiimageview,Nsmutablearray,我有两个NSMutableArrays,其中包含UIImageViews。我想知道如何检查UIImageViews的帧是否与Objective-C中另一个数组的帧相等。是否有用于此的函数?假设数组长度相同,称为array1和array2 __block BOOL equal = YES; [array1 enumerateObjectsUsingBlock:^(UIImageView *imageView, NSUInteger idx, BOOL *stop) { UIImageVie

我有两个
NSMutableArray
s,其中包含
UIImageView
s。我想知道如何检查
UIImageView
s的帧是否与Objective-C中另一个数组的帧相等。是否有用于此的函数?

假设数组长度相同,称为
array1
array2

__block BOOL equal = YES;
[array1 enumerateObjectsUsingBlock:^(UIImageView *imageView, NSUInteger idx, BOOL *stop) {
    UIImageView *otherImageView = array2[idx];
    if (!CGRectEqualToRect(imageView.frame, otherImageView.frame))
    {
        equal = NO;
        *stop = YES;
    }
}];

if (equal) {
    // do stuff
}

没有一种内置方法可以完全满足您的要求。你试过什么?你被卡在什么部位?是比较CGRECT,还是遍历每个数组,还是什么?在每个数组中,对应的视图的顺序是相同的,还是不同的?它们在每个数组中的顺序是相同的。我在if语句中尝试了这个
[array1 isEqualToArray:array2]
。但我发现数组的某些属性彼此不同。请解释一下您在这里做什么?它迭代一个数组中的每个UIImageView,从另一个数组中找到相应的UIImageView,并检查它们的帧是否相等。在执行块之后,我们有一个名为equal的BOOL,可以在if语句中使用。唯一的问题是我使用一个NSTimer来检查帧是否彼此相等。