2013-07-11 2 views
-1

У меня есть два NSMutableArray s с UIImageView s в нем. Мне интересно, как проверить, соответствуют ли кадры UIImageView s кадры другого массива в Objective-C. Есть ли функция для этого?UIImageView Рамка кадра ранга

+0

Нет встроенного метода, который точно соответствует вашим запросам. Что вы пробовали, и в какой части вы застряли? Является ли это сравнение CGR, или итерация через каждый массив, или что? Являются ли соответствующие представления в одном порядке в каждом массиве или могут быть разными? –

+0

они находятся в одном порядке в каждом массиве. Я пробовал этот '[array1 isEqualToArray: array2]' в выражении if. Но я обнаружил, что некоторые свойства массивов отличаются друг от друга. – Steven

ответ

0

Предполагая, что массивы имеют одинаковую длину и называются 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 
} 
+0

Не могли бы вы объяснить, что вы здесь делаете? – Steven

+0

Итерирует через каждый UIImageView в одном массиве, находит соответствующий UIImageView из другого массива и проверяет, равны ли их кадры. После выполнения блока у нас есть BOOL, называемый равным, который мы можем использовать в выражении if. –

+0

Спасибо за помощь! – Steven

Смежные вопросы