[英]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
}
使用此代码,当yourImgFrame1与yourImgFrame2相交时,您可以执行任何操作
祝你好运
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.