Możesz skorzystać z Core Graphics Framework do rysowania kształtów w iOS. To pozwala rysować linie , okręgów, prostokątów, strzałki itp Oto przykład kodu narysować linię pomiędzy 2 punkty (wywodzą się z: How do I draw a line on the iPhone?).
CGContextRef c = UIGraphicsGetCurrentContext();
CGFloat red[4] = {1.0f, 0.0f, 0.0f, 1.0f};
CGContextSetStrokeColor(c, red);
CGContextBeginPath(c);
CGContextMoveToPoint(c, 5.0f, 5.0f);
CGContextAddLineToPoint(c, 50.0f, 50.0f);
CGContextStrokePath(c);
pierwsze określenia podklasy UIView
stworzenie przestrzeni, aby wciągać Następnie za pomocą UITapGestureRecognizer
do wykrywania kranów Jako @WyattMufson suggested in his answer, chciałbym, aby użytkownik kliknął raz, aby uzyskać punkt początkowy linii, a następnie dotknij ponownie, aby uzyskać punkt końcowy. w celu zapewnienia, że można narysować tylko proste linie.
Po ustaleniu punktu początkowego i końcowego można obliczyć punkt środkowy i połączyć dwa punkty za pomocą znaku "?" znak pomiędzy. Następnie zapisz te współrzędne linii (punkt początkowy, środkowy i końcowy) w jakiejś strukturze danych, aby śledzić wszystkie narysowane linie.
Gdy użytkownik dotknie określonej linii, możesz użyć zapisanych współrzędnych linii, aby sprawdzić, czy dotknięcie nastąpiło w linii, czy nie (będziesz musiał wykonać pewne obliczenia, aby to zrobić). Jeśli tak, wyświetl popover, który akceptuje dane wprowadzane przez użytkownika. Gdy użytkownik wprowadzi wartość, zamknij popover i zastąp "?" z nową wartością.
Do usunięcia linii można użyć wartości UILongPressGestureRecognizer
. Użytkownik naciśnie i przytrzyma narysowaną linię, która wyświetli popover, aby potwierdzić, czy użytkownik chce kontynuować usuwanie, czy nie. Jeśli tak, uzyskaj dostęp do zapisanych współrzędnych linii, aby wykryć, czy wstrzymanie nastąpiło w linii, czy nie. Jeśli tak, usuń tę linię.
Oto niektóre odniesienia na początek:
może być to pomocne: http://stackoverflow.com/ pytania/13528898/how-can-i-draw-an-arrow-using-core-graphics –
@NitinGohel Dziękuję za link i mam zaimplementować ten kod i zrobić demo, ale nie jest dla mnie pomocny jakikolwiek inny pomysł? –
Nie mam pojęcia, obudź swój pomysł. :) – Rushabh