2014-06-26 12 views
5

Potrzebuję pomocy przy tworzeniu wersji demonstracyjnej.Linia do rysowania iOS i strzałką z punktem początkowym i końcem palca oraz obróceniem od punktu początkowego lub końcowego

Gdy użytkownik narysuje linię palcem, linia ma strzałki kierunkowe na obu końcach. Po zwolnieniu palca rysuje linię z "?" (znak zapytania) na środku linii.

Następnie, gdy użytkownik dotknie "?", Wyświetli nowy widok, a użytkownik może wprowadzić wartość , a wartość znajduje się w tym wierszu.

Możemy dodać wiele linii na obrazie przechwytywania, a także możemy usunąć wybraną linię .

Nie rozumiem, jak mogę rozpocząć opracowywanie tych funkcji, aby uzyskać , proszę dać mi pomysł lub dowolny link, lub sugestię, aby rozpocząć rozwój tej funkcji .

enter image description here

+0

może być to pomocne: http://stackoverflow.com/ pytania/13528898/how-can-i-draw-an-arrow-using-core-graphics –

+0

@NitinGohel Dziękuję za link i mam zaimplementować ten kod i zrobić demo, ale nie jest dla mnie pomocny jakikolwiek inny pomysł? –

+0

Nie mam pojęcia, obudź swój pomysł. :) – Rushabh

Odpowiedz

3

Należy użyć UITapGestureRecognizer i UIBezierPath. Niech to osoba dotknie jednego punktu, a następnie dotknie drugiego punktu, a następnie utworzy ścieżkę UIBezierPath pomiędzy dwoma punktami. Aby uzyskać znak zapytania pośrodku, można zrobić tak, aby linia przechodziła od pierwszego punktu do (połowa odległości między punktem 1 a punktem 2 - 20 punktów). A następnie zrób to samo z drugą połową linii (tak, że masz teraz miejsce w środku linii.)

+0

Dziękuję za pomoc, ale wymagam, aby po rozpoczęciu rysowania linii palcem punkt początkowy pokazu i pozostawić palec w tym czasie pokaż punkt końcowy za pomocą "?" na środku linii, a także obraca się od punktu początkowego lub końcowego z dotknięciem palca i myślę, że powiedziałeś mi, że najpierw dotknij widoku utworzonego punktu początkowego, a po drugim stuknij jego punkt końcowy pokazu z linią rysowania między dwoma punktami, ale potrzebuję powyżej koncepcji, więc proszę dać mi jakiś pomysł lub sugestię, a także docenić swoją pomoc. –

+0

Wystarczy przeczytać dokumenty referencyjne UIBezierPath. Będziesz chciał tego. Możesz także spróbować rysować z Core Graphics. – WMios

+0

Dzięki za odpowiedź i już teraz odsyłam do UIBezierPath Apple doc, ale jeśli to możliwe, proszę wyślij mi link i to będzie dla mnie cenne. –

2

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:

+0

Dzięki za pomoc, ale wymagam, aby po rozpoczęciu rysowania linii palcem punkt początkowy pokazu i pozostawić palec w tym czasie pokaż punkt końcowy za pomocą "?" na środku linii, a także obraca się od punktu początkowego lub końcowego z dotknięciem palca i myślę, że powiedziałeś mi, że najpierw dotknij widoku utworzonego punktu początkowego, a po drugim stuknij jego punkt końcowy pokazu z linią rysowania między dwoma punktami, ale potrzebuję powyżej koncepcji, więc proszę dać mi jakiś pomysł lub sugestię, a także docenić swoją pomoc. –

Powiązane problemy