Переміщення кнопки UIB з дотиком

Я використовую:

[button addTarget:self action:@selector(moved:) forControlEvents:UIControlEventTouchDragInside];

Переміщення коду функції:

- (IBAction)moved:(id)sender {
UIButton *t = sender;

UITouch *touch = [touch self];

CGPoint touchPoint = [touch locationInView: self];

t.center = touchPoint;
}

Отже, коли я починаю перетягувати кнопку, вона раптово з'являється в лівому верхньому куті (Coord: 0; 0). Я вважаю, що це проблема, оскільки CGPoint touchPoint = [touch locationInView: self]; працює неправильно. У мене є 3 класи: viewController, що робить реалізацію:

view = [[MainView alloc] initWithFrame:[self.view frame] ];
[self.view addSubview:view];

де вид об'єкт класу mainview (підклас uiview). У mainview я роблю об'єкт класу Button (підклас uiview):

[self addSubview:but];

Потім у класі Button i роблять UIButton, асоціюючи з подією UIControlEventTouchDragInside (див. Початок повідомлення).

Так як я повинен виправити мій код, що кнопка перейти до точки дотику правильно ??

P.S. Вибачте за жахливий англійський =)

1

1 Відповіді

Якщо ви дійсно хочете дотримуватися UIControlEventTouchDragInside, то використовуйте фрагмент нижче. Особисто я хотів би використати UIPanGestureRecognizer .

- (IBAction)moved:(UIButton *)sender {
    UITouch *touch = [touch self];
    CGPoint touchPoint = [touch locationInView: sender.superview];
    sender.center = touchPoint;
}
2
додано
Як ви вирішили свою проблему?
додано Автор Philipp Schmid, джерело
Бартош Цехановський - дякую за гарну ідею! Але це схоже на ту саму проблему; наприклад моя точка дотику (x; y), але вона розпізнається як (x-100; y-100)! ?? У моїх попередніх проектах все було добре, але зараз я не знаю, що сталося.
додано Автор Yaz, джерело
Дякую! Я вирішив проблему іншим способом ...
додано Автор Yaz, джерело
Я пішов би прямо в UIPanGestureRecognizer :)
додано Автор Bartosz Ciechanowski, джерело
IT KPI iOS
IT KPI iOS
74 учасників

Чат обсуждения IOS. - Оффтоп, флуд, оскорбления и вбросы здесь не приняты. - За нарушение - предупреждение или mute на неделю. - За спам и рекламу - ban. Все чаты IT KPI: https://t.me/itkpi/602

ios_jobs_ua
ios_jobs_ua
27 учасників

Mobile Dev Jobs UA
Mobile Dev Jobs UA
20 учасників

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin, RN и т.д.