I’ve been trying to get these results for a while now.. I can’t seem to figure it out. Anyone know how to go about doing this?
I’m trying to compare two objects to each other from the beginning of my array, to the end, in that sequence.
Tilo’s Solution:
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);
}
Updated with Pauls block solution:
[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);
}
}];
1 Answer