Я уже некоторое время пытаюсь получить эти результаты ... Кажется, я не могу этого понять. Кто-нибудь знает, как это сделать?
Я пытаюсь сравнить два объекта друг с другом от начала моего массива до конца в этой последовательности.
Решение Тило:
for (int i=1; i<[tempRightArray count]; i++) {
UIImageView* letterA = [tempRightArray objectAtIndex:i-1];
UIImageView* letterB = [tempRightArray objectAtIndex:i];
NSLog(@"LetterA: %@",letterA);
NSLog(@"LetterB: %@",letterB);
//Distance between right side of Touched piece and Left side of new piece == Touch on Right
CGPoint midPointRightSidePiece = CGPointMake(CGRectGetMaxX(letterA.frame), CGRectGetMidY(letterA.frame));
CGPoint midPointLeftSidepiece = CGPointMake(CGRectGetMinX(letterB.frame), CGRectGetMidY(letterB.frame));
CGFloat distance = DistanceBetweenTwoPoints(midPointLeftSidepiece, midPointRightSidePiece);
NSLog(@"Distance: %f",distance);
}
Обновлено с блочным решением Паулса:
[tempRightArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
if (idx > 0) {
UIImageView *letterB = (UIImageView*)obj;
id obj2 = [tempRightArray objectAtIndex:--idx]; // idx is the index of obj again given to you by the block args
UIImageView *letterA = (UIImageView*)obj2;
NSLog(@"LetterA: %@",letterA);
NSLog(@"LetterB: %@",letterB);
//Distance between right side of Touched piece and Left side of new piece == Touch on Right
CGPoint midPointRightSidePiece = CGPointMake(CGRectGetMaxX(letterA.frame), CGRectGetMidY(letterA.frame));
CGPoint midPointLeftSidepiece = CGPointMake(CGRectGetMinX(letterB.frame), CGRectGetMidY(letterB.frame));
CGFloat distance = DistanceBetweenTwoPoints(midPointLeftSidepiece, midPointRightSidePiece);
NSLog(@"Distance: %f",distance);
}
}];