0

我有两层。底层由隐藏UIImageView的s组成,上层由可见UIImageView的s组成。当底层UIImageViews 的所有帧都等于上层UIImageViews 的帧时,你必须在 a 中看到NSLog

问题是由 a 调用的布尔方法NSTimer总是立即返回 true,所以我看到NSLog. 我只想看看NSLog所有对应的帧何时彼此相等。

这是我的代码:

- (void)checkTheFrames {
    BOOL allEquals = [self isEqualFrames];
    if (allEquals) {
        NSLog(@"ALL THE FRAMES ARE EQUAL");
        [AllPosCorrectTimer invalidate];
    }
}

-(BOOL)isEqualFrames {
    for(int i = 0; i < arrayImg.count; i++ ){
        UIImageView *ImageView1 = arrayImg[i];
        UIImageView *ImageView2 = HiddenFieldView[i];
        if (!CGRectEqualToRect(ImageView1.frame, ImageView2.frame)) {
            return NO;
        }
    }
    return YES;
}

有没有办法解决这个问题?

4

1 回答 1

1

我认为问题在于您也在比较 Xs 和 Ys……也许您应该进一步frame.size比较它们。或者可以轻松比较宽度和高度(frame1.size.width == frame2.size.width)

让我知道这是否没有解决问题!

于 2013-07-21T17:52:04.350 回答