Ipad 放大uiscrollview时将uiimageview拖动到“垃圾桶”中

Ipad 放大uiscrollview时将uiimageview拖动到“垃圾桶”中,ipad,uiview,drag-and-drop,uiscrollview,uiimageview,Ipad,Uiview,Drag And Drop,Uiscrollview,Uiimageview,大家好。我在网上搜索过,真的没有发现像这样的问题。我的设置如下:我正在尝试制作一个应用程序,其中用户在uiscrollview中的uiview上拖动UIImageViews,它可以放大,但也可以将图像拖动到垃圾桶中删除。放大scrollview时,用户仍然可以拖动,因为我已将uiimageview子类化并重写了touchesMoved方法。我希望用户能够将UIImageView拖到屏幕右下角的垃圾桶中。当uiscrollview为正常缩放比例时,我实现的功能已经起作用,但当您放大时,您无法将图像

大家好。我在网上搜索过,真的没有发现像这样的问题。我的设置如下:我正在尝试制作一个应用程序,其中用户在uiscrollview中的uiview上拖动UIImageViews,它可以放大,但也可以将图像拖动到垃圾桶中删除。放大scrollview时,用户仍然可以拖动,因为我已将uiimageview子类化并重写了touchesMoved方法。我希望用户能够将UIImageView拖到屏幕右下角的垃圾桶中。当uiscrollview为正常缩放比例时,我实现的功能已经起作用,但当您放大时,您无法将图像拖动到垃圾桶,因为垃圾桶是控制器视图本身的子视图,因此它不会使用uiview进行缩放,当然也不在uiscrollview屏幕的正确坐标中

我发现了一个名为ConvertRect的视图方法,它可以将矩形转换为给定给该方法的任何视图的坐标,但这似乎不起作用。我在每个MapImageView中进行检查,检查uiimageview的帧与垃圾桶的帧相交的imageview子类。所以我在检查之前尝试了这个方法,但就像我说的,它似乎不起作用


这么复杂,让我简单地说一下我的问题。无论uiscrollview的缩放级别如何,我都希望将图像拖到垃圾桶上。我可以使垃圾桶成为uiscrollview的一部分,但我需要一种方法使其保持在右下角,并且在uiscrollview出现时不进行缩放。任何想法都将不胜感激,谢谢各位

我遇到了完全相同的挑战

总之,我可以简单地描述一下:

开始拖动图像时,请将其从UISCrollView中删除,并将其添加为ViewController主视图的子视图

确保图像不会在过程中丢失意味着:有人仍保留图像

拖动时,不断检查图像是否进入或离开垃圾桶的边界。您可以使用下面的方法执行此操作:

-(void) checkForTrashCan
{
    CGRect rect =  [self.delegate.trashCan convertRect:self.view.frame fromView:self.view.superview];

    if ([self.delegate.trashCan rectIntersectBounds:rect])
    {
        if (NOT self.isInTrashMode)
        {
            [self enterTrashMode];
        }
    }
    else 
    {
        if (self.isInTrashMode)
        {
            [self exitTrashMode];
        }
    }
}  
当rectIntersectBounds方法只是我编写的UIView类的一个简单扩展方法时:

-(BOOL) rectIntersectBounds : (CGRect) rect
{
    return CGRectIntersectsRect(self.bounds, rect);
}
拖动结束后,检查视图是否在垃圾桶内,并根据结果进行操作