Ho costruito un UITextView crescente attaccato alla tastiera, simile a quello di App Stock Messaggi, caricando un .xib nella inputAccessoryView della tastiera in quanto tale:iOS Tastiera - ingresso Accessori Vedi XI ter con layout automatico non ricevere evento di tocco
self.keyboardAccessoryView = [[[NSBundle mainBundle]
loadNibNamed:@"KeyboardAccessoryView"
owner:self options:nil]
firstObject];
il .xib assomiglia a questo e sta usando vincoli di layout in modo che il textView cresce verticalmente quando l'utente inserisce più righe di testo:
Ciò è tanto grande lavoro, con rotazione e everythi ng, tranne un grosso bug - quando il testo è composto da più righe, solo la linea di fondo gestisce gli eventi di tocco. Ciò significa che un utente non può scorrere all'interno di UITextView perché i suoi eventi di tocco vengono passati alla vista (grigio scuro) sul retro e lo scorrimento invece. Inoltre non possono selezionare e modificare il loro testo sulle prime 3 righe.
credo che avrei potuto fare una soluzione catturando le coordinate di tutti gli eventi rubinetteria e controllando se la tastiera è aperta e l'altezza del UITextView è, quindi selezionando l'elemento corretto per ricevere l'evento di tocco. Ma questa è una soluzione fragile che è più complicata con la rotazione. C'è qualcosa che mi manca nel mio approccio di visualizzazione del testo auto-crescente o una soluzione più semplice?
Ho problemi con i vincoli del layout automatico per far crescere verticalmente la vista accessoria. Sto giocando con il layout Qualche possibilità che tu possa condividere alcune intuizioni lì? Posso solo aumentare la visualizzazione del testo (modificando il suo vincolo di dimensione) mentre la sua vista accessoria del contenitore rimane la sua dimensione originale. – rainypixels