我有两层。底层由隐藏的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;
}
有没有办法解决这个问题?
答案 0 :(得分:1)
我认为最糟糕的是你也在比较X和Y ...也许你应该进一步frame.size
并比较它们。或者可以轻松地比较宽度和高度(frame1.size.width == frame2.size.width)
如果这不能解决问题,请告诉我!