2013-08-24 16 views
6

ho un UITextView avvolto all'interno di un UIView che può essere ridimensionata (aumentando struttura e dimensione del carattere), e la lente di ingrandimento funziona bene con minore TextView dimensioniUITextView caratteri grandi e lente

Magnifying glass working normal

ma se io aumentare la dimensione TextView molto, la lente di ingrandimento inizia a uscire dal suo telaio

enter image description here

Posso rimuovere la lente di ingrandimento senza compromettere curso r la selezione, o diminuire il valore di scala all'interno del vetro in modo che il contenuto si adatti alla sua cornice?

+0

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

+0

Non voglio rimuovere UILongPressGestureRecognizer, voglio essere in grado di spostare il cursore all'interno di textView, solo senza la lente d'ingrandimento, o diminuire le dimensioni della scala di ingrandimento in modo che il testo si adatti all'interno della lente d'ingrandimento 'frame – Efesus

risposta

1

Ok, è riuscito a disabilitare la lente d'ingrandimento senza rimuovere la possibilità di muovere il cursore.

Per fare ciò, ho rimosso UILongPressGestureRecognizer per eliminare la lente di ingrandimento. Poi usato il mio UIPanGestureRecognizer di monitorare la posizione tocco dell'utente

CGPoint currentPos = [panRecognizer locationInView:self]; 

e quindi impostare la posizione del cursore

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

Per disabilitare la lente di ingrandimento è sufficiente impostare la proprietà userInteractionEnabled su NO. Dopodiché è necessario chiamare manualmente becomeFirstResponder quando si tocca UITextField. È possibile utilizzare un TapGestureRecognizer per farlo.

+0

Non desidero per disabilitare completamente l'interazione dell'utente, voglio solo disabilitare la lente d'ingrandimento. Inoltre ho un hitTest che sovrascrive la proprietà userInteractionEnabled – Efesus