[英]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.