无法确定UIImageView帧何时相等

时间:2013-07-21 16:22:07

标签: ios objective-c cocoa-touch uiimageview frame

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

问题是由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;
}

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

1 个答案:

答案 0 :(得分:1)

我认为最糟糕的是你也在比较X和Y ...也许你应该进一步frame.size并比较它们。或者可以轻松地比较宽度和高度(frame1.size.width == frame2.size.width)

如果这不能解决问题,请告诉我!