從你的評論,並使用你已有的代碼,我會沿着這條路線走下去。這不是我個人的行爲,只是供參考。這個結構聽起來像是你想要的那樣。
在touchesBegan函數中創建佔位符UIImageView,然後檢查當用戶停止移動圖像時它們是否相交。
#import "LetterTiles.h"
@implementation LetterTiles
@synthesize placeHolder;
- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
// Retrieve the touch point (I consider this useful info to have, so I left it in)
CGPoint pt = [[touches anyObject] locationInView:self];
startLocation = pt;
// Create a place holder image wherever you want
[self setPlaceHolder:[[[UIImageView alloc] initWithFrame:CGRectMake(39, 104, 70, 70)] autorelease]];
[newImage setImage[UIImage imageNamed:@"placeHolder.png"]] autorelease];
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
CGPoint pt = [[touches anyObject] locationInView:[self superview]];
[self setCenterPoint:pt];
}
-(void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event {
LetterTiles *movingTile = self;
if (CGRectIntersectsRect([movingTile frame], [placeHolder frame])) {
NSLog(@"Touched");
[self setFrame:[placeHolder frame]];
}
}
是的,你說得對,我應該剛剛解釋我最終想做的事情。我的錯。 當我觸摸一個字母圖塊時,我希望它在屏幕中間的某處創建一個UIImageView。該UIImageView將成爲被觸摸/拖動的字母拼貼的「佔位符」。用戶將字母瓦片拖到「佔位符」上,字母瓦片將卡入佔位符頂部的位置。這樣,信件拼貼排隊。這是否更有意義? – Jason
是的,這使得更多的意義。我重寫了我的帖子以適應這個想法。這個結構有點不規範。首先,我將'placeHolder'東西移到父視圖中,這樣您就可以更好地控制它,而不是在對象中創建'placeHolders'並將其移除,等等。 – ColdLogic
您的先生是史詩般的。非常感謝您的幫助和代碼。這是完美的。 – Jason