我有两个滚动视图,一个在左边,另一个在右边。
在左侧滚动视图中,我已经在其上放置了带有标签的uiviews列表,用于命名它们。
在右侧滚动视图中,我已经放置了滚动视图列表,在每个滚动视图中,我已经放置了带有标签的uiviews列表,用于命名它们。
我正在使用CGRectIntersectsRect来检测左侧滚动视图中的uiview与使用拖放的右侧滚动视图中的任何uiview的交集。
我的问题是CGRectIntersectsRect没有检测到相交的视图。
我正在使用uinavigationcontroller。
我使用过google搜索获得的OBDragDropTest项目。因为我正在做出改变。
我的代码如下,
-(void) handleDropAnimationForOvum:(OBOvum*)ovum withDragView:(UIView*)dragView dragDropManager:(OBDragDropManager*)dragDropManager
{
UIView *itemView = nil;
if ([ovum.dataObject isKindOfClass:[NSNumber class]])
{
itemView = [self.view viewWithTag:[ovum.dataObject integerValue]];
[viewsAry removeAllObjects];
[viewsAry addObjectsFromArray:unAssignedViewContents];
[viewsAry addObjectsFromArray:removeViewContents];
[viewsAry addObjectsFromArray:repairViewContents];
[viewsAry addObjectsFromArray:paintViewContents];
[viewsAry addObjectsFromArray:refitViewContents];
[viewsAry addObjectsFromArray:detailViewContents];
[viewsAry addObjectsFromArray:completedViewContents];
NSArray *subViewsInView=[NSArray arrayWithArray:viewsAry];
for(UIView *theView in subViewsInView)
{
if (![itemView isEqual:theView])
{
if(CGRectIntersectsRect(theView.frame, ovum.dragView.frame))
{
NSLog(@"view Tag = %d",theView.tag);
}
}
}
}
我为所有视图和滚动视图设置了setUserInteractionEnabled = True。
请为此问题提供解决方案。
答案 0 :(得分:1)
而不是下面的代码
if (![itemView isEqual:theView])
{
if(CGRectIntersectsRect(theView.frame, ovum.dragView.frame))
{
NSLog(@"view Tag = %d",theView.tag);
}
}
我用过
if (![itemView isEqual:theView])
{
CGPoint point = [theView convertPoint:dragView.center fromView:dragView.superview];
if([theView pointInside:point withEvent:nil])
{
NSLog(@"view Tag = %d",theView.tag);
}
}
并完成子视图的交集检测。现在我可以获得接收器的标签号。