我在UIScrollView中有一个UIImageView,我有另一个UIImageView(dragImage),它位于滚动视图的外部,但在主视图控制器的视图中使用UIScrollVIew。
我想检查一下dragImage是否与scrollview中的imageview相交,还想知道相交多少..
什么是好方法?
这是我的结果/代码,效果很好:
CGRect tabFrame = CGRectMake(0, ((TAB_HEIGHT+2)*i) + scrollView.frame.origin.y, TAB_WIDTH, TAB_HEIGHT);
CGRect dragFrame = dragImage.frame;
CGRect collision = CGRectIntersection(dragFrame,tabFrame);
int area = collision.size.width * collision.size.height;
if (area>selectedArea) {
selectedArea = area;
selectedTab=i;
}
if (selectedArea>600) break;
答案 0 :(得分:2)
您需要使用CGRectIntersectsRect()
和CGRectIntersection()
来分析两个矩形是否重叠以及分别重叠多少。例如......
BOOL dragImageIntersectsScrollView = CGRectIntersectsRect(dragImage.frame, scrollView.frame);
CGRect intersectionRect = CGRectIntersection(dragImage.frame, scrollView.frame);
if (!dragImageIntersectsScrollView)
{
NSLog(@"Rectangles do not intersect");
}
else
{
NSLog(@"Intersection rect: %@", NSStringFromCGRect(intersectionRect))
}
CGRectIntersectsRect()
并非绝对必要,因为您只需检查CGRectIntersection()
的返回值即可。如果它们不相交,那么它将返回一个空矩形。您可以使用CGRectIsNull()
检查此内容。
答案 1 :(得分:-1)