4

One UIViewand one Draggable UIImageViewがあります。の背景色UIViewです。

画像をドラッグするときは、UIImageViewをタッチしUIViewます。画像をドラッグするとUIView、の色がredUIViewになります。

UIImageView到達したことを確認する方法はUIView

4

4 に答える 4

8
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{   
    if (CGRectIntersectsRect(imageview.frame, view.frame)) {
        view.backgroundColor=[UIColor redcolor];
    }
}
于 2013-04-30T10:22:07.013 に答える
2

以下のような方法で確認できますtouchesBegan...

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    [touch locationInView:self.view];
    if([touch.view isKindOfClass:[UIImageView class]])
    {
      ///This is UIImageView
    }
    else if([touch.view isKindOfClass:[UIView class]]) 
    {
      ///This is UIView
    }
}

その時点で移動すると、次のコードUIImageViewで backGroundColor が変更されUIViewます...

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
{
    UITouch *tap = [touches anyObject];
    CGPoint pointToMove = [tap locationInView:self.view];
    if([tap.view isKindOfClass:[UIImageView class]])
    {
        UIImageView *tempImage=(UIImageView *) tap.view;
        if ([yourView pointInside:pointToMove withEvent:event])
        {
            [yourView setBackgroundColor:[UIColor redColor]];
        }
        else{
            [yourView setBackgroundColor:[UIColor clearColor]];//set backcolor which you want when `UIImageView` move outside of yourView 
        }
    }
}

また、移動については、このリンクからの回答を参照してくださいUIImage を別の UIImage 内でのみ移動します

于 2013-04-30T10:17:20.263 に答える