我想做形狀匹配應用程序like this。如何匹配iOS中UIGestureRecognizer中的圖像形狀?
請檢查這個鏈接的第二個圖像。
請檢查this link也, 我可以拖放圖像,但我無法匹配的確切位置,無法填寫與另一個圖像。
任何想法或建議將非常受歡迎。
我想做形狀匹配應用程序like this。如何匹配iOS中UIGestureRecognizer中的圖像形狀?
請檢查這個鏈接的第二個圖像。
請檢查this link也, 我可以拖放圖像,但我無法匹配的確切位置,無法填寫與另一個圖像。
任何想法或建議將非常受歡迎。
這有點棘手。
你是程序員,你知道哪個圖像匹配什麼形狀,可能是你需要兩個imageviews一個與形狀等與圖像..
PS:我在這裏只給一個想法。
所以可能你可以跟蹤標籤。添加手勢識別器來拖動圖像,以便您瞭解哪個形狀正在被拖動。移動時只需將形狀中心與圖像當前位置的中心進行比較。確保你比較範圍而不是確切的中心。
希望這麼多的信息可以幫助您:)
謝謝aloot先生。是的,它會幫助我。現在我有想法從哪裏開始。先生,你有沒有關於這個項目的任何教程鏈接? – 2013-04-30 07:18:49
我不這麼認爲,你會得到任何示例代碼。技巧將工作 – DivineDesert 2013-04-30 08:07:05
先生我已根據你創建了一個演示。現在我無法理解這一行「現在移動時只需比較形狀中心與圖像當前位置的中心。」?先生,請您再提一些建議。 – 2013-04-30 09:47:57
//UIImageView *imageView1
(與之圖像必須被匹配的空白圖像),
//UIImageView *imageView2
(彩色圖像必須被匹配)
取一個NSMutableArray
positionArray,現在每當你添加任何新的空白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的時候要特別小心(兩者都應該是爲SAEM相同類型的圖像)。
如何給這樣的鏈接? – 2013-04-30 07:07:56
你是如何嘗試過匹配位置的?你用'用另一個填充圖像'是什麼意思?你是不是簡單地疊加或替換視圖? – Wain 2013-04-30 07:09:43
先生,我是新的iphone和這個項目分配給我,所以我正在尋找並從iPhone專家詢問這個。真的不知道這個項目的先生。 – 2013-04-30 07:15:39