繁体   English   中英

如何在 UIImageViews 之间拖放和居中图像?

[英]How do I drag & drop and center an image between UIImageViews?

我正在开发一个国际象棋应用程序,目前我有一个简单的设置:棋盘的背景和所有单元格的 UIImageView。 到目前为止,我已经成功地使用 UITouch 和 CGPoint 在板上拖放图像。

我的问题是我可以在我的应用程序中的任何位置拖放这些图像,我需要创建代码来设置电路板和图像的边界。 现在,我的图像可以拖放到彼此的顶部,或者在需要将它们放入单元格之间时拖放到单元格之间,或者可以将它们放到需要在其边界内的电路板边界之外。 因此,这是一个设置边界的问题。

处理拖放事件的代码:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch = [[event allTouches] anyObject];

    CGPoint touchLocation = [touch locationInView:[self view]];   

    for (UIImageView *piece in chessCells) {
        if([touch view] == piece){
            piece.center = touchLocation;
        }
    }

}

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    [self touchesBegan:touches withEvent:event];
}

关于for 循环

我板上的所有单元格都是带有 UIImageViews 的空白 IBOutlets,我通过将它们保存在一个名为“chessCells”的 NSArray 中进行组织。 我有一种方法可以在应用程序启动时在各自的单元格中显示图像。 从这一点上,我能够抓住它们并在棋盘上自由移动它们......但正如我发现的那样,有点太自由了。

您应该尝试使用CGRectIntersectRect将此添加到您的代码中

if (CGRectIntersectsRect(yourImgFrame1, yourImgFrame2)) {
    //do What ever you want
}

使用此代码,当yourImgFrame1yourImgFrame2相交时,您可以执行任何操作

祝你好运

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM