こんな形合わせアプリを作りたい。
このリンクの2番目の画像を確認してください。
このリンクも確認してください。画像をドラッグ アンド ドロップできますが、正確な位置を一致させることができず、その画像を別の画像で埋めることができません。
どんなアイデアや提案も大歓迎です。
//UIImageView *imageView1
(画像を一致させる必要がある空白の画像)、
//UIImageView *imageView2
(一致する必要がある色付きの画像)
positionArray を取り、NSMutableArray
新しい空白の imageview (imageview1 ) を画面に追加するたびに、その追加情報を MutableArray のように追加します。
UIImageView *imageview = [[UIImageView alloc] initWithFrame:CGRectMake(10,10,100,50)];
[imageview setTag:TagValue];
[imageview setImage:[UIImage imageNamed:@"blankMonkeyShapedImage.png"]];
//Incrementing the TagValue by one each time any blank imageview is added
TagValue++;
NSMutableDictionary *locationDic=[[NSMutableDictionary alloc] init];
[locationDic setValue:[NSNumber numberWithInt:imageview.tag] forKey:@"TagNumber"];
[locationDic setValue:[NSString stringWithFormat:@"Monkey~example"] forKey:@"ImageName"];
[locationDic setValue:[NSNumber numberWithFloat:imageview.frame.origin.x] forKey:@"PosX"];
[locationDic setValue:[NSNumber numberWithFloat:imageview.frame.origin.x] forKey:@"PosY"];
[locationDic setValue:[NSNumber numberWithFloat:imageview.frame.size.width] forKey:@"SizeWidth"];
[locationDic setValue:[NSNumber numberWithFloat:imageview.frame.size.height] forKey:@"SizeHeight"];
[self.view addSubview:imageview];
[positionArray addObject:locationDic];
新しい空白のイメージビューを追加するたびに、同じことを繰り返す必要があります。UIGestureRecognizer
セレクターメソッドに戻る
-(void)panGestureRecognizer:(UIPanGestureRecognizer *)gesture
{
CGPoint translation = [gesture translationInView:self.view];
for (int i=0 ; i<[positionArray count]; i++)
{
NSMutableDictionary *lctionDic=[positionArray objectAtIndexPath:i];
float posX=[[lctionDic valueFor:@"PosX"] floatValue];
float posY=[[lctionDic valueFor:@"PosY"] floatValue];
float SizeWidth = [[lctionDic valueFor:@"SizeWidth"] floatValue];
float SizeHeight = [[lctionDic valueFor:@"SizeHeight"] floatValue];
if (translation.x >= posX && translation.x <= posX+SizeWidth &&
translation.y >= posY && translation.y <= posX+SizeHeight )
{
//Condition where the dragged objects position matches any previousluy placed balnk imageview.
if(gesture.view.tag==[[lctionDic valueFor:@"TagNumber"] intValue])
{
NSLog(@"Matched Image's Name is : %@",[lctionDic valueForKey:@"ImageName"]);
break;
}
else
continue;
}
}
}
TagValues を空白の imageview と toBeDragged imageview に割り当てるときは、特に注意してください (どちらも同じ種類の画像の場合は同じである必要があります)。
それは少しトリッキーです。
あなたはコーダーで、どの画像がどの形状に一致するかを知っています。
PS: アイデアを出しているだけです。
タグで追跡できるかもしれません。画像をドラッグするためのジェスチャ認識機能を追加すると、どの図形がドラッグされているかがわかるようになります。移動中は、形状の中心と画像の現在の位置の中心を比較するだけです。正確な中心ではなく、必ず範囲を比較してください。
この多くの情報があなたに役立つことを願っています:)