xcode touchesНачались несколько задач

Я использую touchesBegan и touchesMoved для перемещения UIImageView туда, где вы касаетесь экрана. Он перемещает маркер (перемещенный мной UIimageView), рисует фигуру в UIImageview и считывает график.

Однако всякий раз, когда я пытаюсь что-то сделать с этими данными, например, обновить метку, 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;

Приведенный выше код отлично работает и перемещает изображение на новое место. Однако я должен добавить что-то действительно простое, например

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

и UIImageView (круги) больше не находится в .center = p. Метка обновилась, и UIImageView помчался обратно к тому месту, где я сбросил его на раскадровке, прежде чем были сделаны какие-либо прикосновения. Он определенно движется, но устремляется назад. Без инструкции метки он остается на месте и завершает следующее касание.

Он даст мою позицию x и позицию y и позволит мне распечатать их в операторе NSLog, но не позволит мне обновить метку с их значениями или сделать что-либо, что не связано с этим UIImageView. Я не хочу динамически создавать UIImageView во время выполнения. Я хочу использовать этот и переместить его. Я почти уверен, что это строка circles.center = p, которую нужно изменить, но я не знаю, как сказать ей внести это изменение и остаться там.

Любая помощь будет очень кстати


person user1830864    schedule 16.11.2012    source источник
comment
Я пробовал десятки способов сейчас. Вместо этого я попытался использовать распознаватель жестов с перехватчиком касания, я попытался сохранить значения в NSUerdefaults и в nsdictionary и использовать позже. Я пробовал touchesend, я пытался использовать селекторы и выполнять действия через заданный интервал времени, я пробовал рефрейминг, я пытался плакать, но он всегда всегда возвращает изображение в исходное положение, как только я пытаюсь что-то сделать. Я не могу перехватить эти прикосновения и сделать их полезными. Только переместите uiimageview ИЛИ сделайте что-то еще.   -  person user1830864    schedule 17.11.2012
comment
Я пробовал UITouchPhaseCancelled и UITouchPhaseEnded. Я пробовал [[self nextResponder] touchesBegan: touches withEvent: event]; Я попробовал [супер касания начались]. Я сейчас как бы хватаюсь за соломинку.   -  person user1830864    schedule 17.11.2012
comment
3 дня и ни одного комментария. Не думаю, что снова воспользуюсь этим сайтом.   -  person user1830864    schedule 19.11.2012


Ответы (1)


Выяснилось, что примерно через 14 часов переписывания кода всеми мыслимыми способами мне просто нужно было поместить оскорбительный ярлык поверх поля «представление». У меня была какая-то проблема со слоями. После того, как метка была размещена на невидимом «представлении», почти каждая комбинация кода, которую я пробовал за последние два дня, работала.

person user1830864    schedule 18.11.2012