簡體   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