2012-11-16 69 views
1

我正在使用touchesBegan和touchesMoved將UIImageView移動到任何你在屏幕上觸摸的地方。它移動一個標記(我移動的UIimageView),在UIImageView中繪製一個形狀並讀取圖形。xcode touchesBegan多任務

但是,每當我嘗試使用該數據做任何事情時,例如更新標籤,UIImageView都會匆忙回到它開始的位置,而不是停留在原來的位置。

-(void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event{ 

UITouch *myTouch =[[event allTouches] anyObject]; 
CGPoint location = [myTouch locationInView:self.view]; 

int x = location.x; 
int y = location.y; 

NSLog(@"x = %i",x); 
NSLog(@"y = %i",y); 

CGPoint p={x, y}; 
circles.center = p; 

上面的代碼工作正常,並將圖像移動到新的位置。不過,我要補充somethig像

changeInY.text = [NSString stringWithFormat:@"Main Label"]; 

和UIImageView的(圓圈)很簡單,不再在.center = P。標籤已經更新,UIImageView又回到了我在任何接觸之前將它放在故事板上的地方。它肯定會移動,但會急速返回。沒有標籤說明,它就停留在原來的位置並完成下一次觸摸。

它會給我的x位置和y位置,讓我在NSLog語句中打印它們,但它不會讓我用它們的值更新標籤,或者做任何與它無關的事情的UIImageView。 我不想在運行時動態創建UIImageView。我想使用那個並移動它。 我很確定它的circles.center = p行需要改變,但我不知道如何讓它做出改變並留在那裏。

任何幫助將是非常歡迎

+0

我已經嘗試了幾十種方法。我嘗試使用帶有tap攔截器的手勢識別器,我嘗試將值保存到NSUerdefaults和nsdictionary中並稍後使用。我嘗試了touchesen,嘗試使用選擇器並在設定的時間間隔內執行,我嘗試重新構圖,我嘗試了哭泣,但只要我嘗試做任何事情,它總是會將圖像移回原始位置。我無法攔截這些觸摸並使它們有用。只移動uiimageview或做別的事情。 – user1830864

+0

我試過UITouchPhaseCancelled和UITouchPhaseEnded。我試過[[self nextResponder] touchesBegan:touches withEvent:event];我試過[super touchesbegan]。我有點抓住吸管。 – user1830864

+0

3天,而不是一個單一的評論。我不認爲我會再次使用這個網站。 – user1830864

回答

0

約14小時在每一個可能的方式重寫代碼後,事實證明,我只是需要把違規標籤上的「視圖」對話框的頂部。我有某種分層問題。一旦標籤被放置在一個不可見的'視圖'上,幾乎每一個我在過去兩天中嘗試過的代碼組合都可以工作。