Ho bisogno di trovare il pixel-frame per diversi intervalli in una vista testo. Sto usando il - (CGRect)firstRectForRange:(UITextRange *)range;
per farlo. Tuttavia non riesco a scoprire come creare effettivamente un UITextRange
.Crea UITextRange da NSRange
Fondamentalmente questo è quello che sto cercando:
- (CGRect)frameOfTextRange:(NSRange)range inTextView:(UITextView *)textView {
UITextRange*range2 = [UITextRange rangeWithNSRange:range]; //DOES NOT EXIST
CGRect rect = [textView firstRectForRange:range2];
return rect;
}
Apple dice uno deve sottoclasse UITextRange
e UITextPosition
al fine di adottare il protocollo UITextInput
. Non lo faccio, ma ho comunque provato, seguendo il codice di esempio del documento e passando la sottoclasse a firstRectForRange
che ha provocato l'arresto anomalo.
Se c'è un modo più semplice per aggiungere colori diversi UILables
a una vista testo, per favore dimmi. Ho provato a utilizzare UIWebView con content editable
impostato su TRUE, ma non mi piace comunicare con JS e colorare è l'unica cosa di cui ho bisogno.
Grazie in anticipo.
Devi sottoclasse 'UITextRange' per poterlo impostare. L'unico modo per impostare le proprietà 'UITextRange' è accedervi nella sottoclasse. Definisce 'start' e' end' come proprietà, ma possono essere impostate internamente facendo riferimento a '_start' e' _end'. – Justin
Sì, ma come faccio quindi a creare una UITextPosition, che non ha alcuna proprietà? 0.o Se lo sottoclassi, come potrebbe il 'firstRectForRange' sapere quale proprietà usare dalla sottoclasse UITextPosition? –
Questo è qualcosa che non so. Tutto quello che so su questo è che devi sottoclasse per impostare proprietà 'readonly'. Questo è il motivo per cui questo è un commento al posto di una risposta. – Justin