2013-08-24 23 views
6

mam UITextView wlana UIView który może być zmieniany (zwiększenie a rozmiarem czcionki) i szkło powiększające współpracuje z mniejszym TextView wielkościUITextView z dużej czcionki i lupy

Magnifying glass working normal

ale jeśli mogę zwiększyć rozmiar TextView dużo, szkło powiększające zaczyna wychodzić z jego ramą

enter image description here

mogę po prostu wyjąć szkło powiększające bez wpływu curso r wybrać lub zmniejszyć wartość skali wewnątrz szyby, aby zawartość pasowała do ramki?

+0

http://stackoverflow.com/questions/10640781/disable-magnifying-glass-in -uitextview – iPatel

+0

Nie chcę usuwać UILongPressGestureRecognizer, chcę móc przesuwać kursor wewnątrz textView, tylko bez lupy, lub zmniejszać skalę powiększenia, aby tekst pasował do wnętrza ramki lupy – Efesus

Odpowiedz

1

Dobrze, udało się wyłączyć szkło powiększające bez usuwania umiejętności przenoszenia kursora.

W tym celu usunąłem urządzenie UILongPressGestureRecognizer, aby pozbyć się lupy. Następnie użył mojego UIPanGestureRecognizer śledzić lokalizację dotykowego użytkownika

CGPoint currentPos = [panRecognizer locationInView:self]; 

a następnie ustawić położenie kursora

UITextPosition *cursorPosition=[self closestPositionToPoint:CGPointMake(currentPos.x, currentPos.y)]; 
[self setSelectedTextRange:[self textRangeFromPosition:cursorPosition toPosition:cursorPosition]]; 
0

Aby wyłączyć lupę, ustaw właściwość userInteractionEnabled na NO. Po tym musisz ręcznie zadzwonić pod numer becomeFirstResponder po dotknięciu pola UITextField. Możesz użyć do tego celu TapGestureRecognizer.

+0

Nie chcę aby całkowicie wyłączyć interakcję użytkownika, po prostu chcę wyłączyć szkło powiększające. Mam również hitTest, który nadpisuje właściwość userInteractionEnabled – Efesus