Sto costruendo un editor di note utilizzando il kit di testo in ios7. In precedenza ho avuto problemi nel rendering di dimensioni NSTextAttachment in quanto rallentava il rendering in gran parte. Ho risolto il problema ridimensionando le immagini e aggiungendole a textview. Puoi trovare la risposta in iOS 7.0 UITextView gettings terribly slow after adding images to it Dopo il ridimensionamento delle immagini il rendering textview funziona bene senza alcun ritardo. Il testo attribuito di textview è memorizzato nei dati principali. Durante una sessione di applicazione in esecuzione la visualizzazione testo visualizza correttamente le immagini. Anche dopo aver salvato il testo attribuito nei dati di base e recuperato per visualizzarlo di nuovo textview, le immagini sembrano belle. Dopo aver ucciso l'app e aver eseguito nuovamente l'applicazione. Le immagini vengono ingrandite fino a 2x. Per ridimensionare le immagini, ho usato la seguente funzione e utilizzato [scala UIScreen] per mantenere la qualità dell'immagine.iOS 7 UITextView: dimensione del nstextattachment che riceve 2x dopo la riapertura dell'applicazione
- (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
UIGraphicsBeginImageContextWithOptions(newSize, NO, [UIScreen mainScreen].scale);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
Se si ridimensionano le immagini a 1.0, le immagini non si espandono ma la qualità dell'immagine è pessima.
Cosa penso Dove si trova il problema? Il problema si trova nel gestore di layout.
quello che ho provato ho cercato sottoclasse della NSLayoutManager e l'override del - (void) drawGlyphsForGlyphRange: (NSRange) glyphsToShow atPoint: (CGPoint) origine Quello che vedo è la dimensione degli allegati raddoppia quando eseguendo una nuova sessione dell'applicazione.Se provo a controllare la dimensione dell'allegato e ridimensionarlo. Il ritardo ricomincia. Sono bloccato da questo problema da un bel po 'di tempo. Ogni suggerimento sarebbe molto apprezzato.
Come stai memorizzando l'immagine? È possibile che a seguito del ridimensionamento eseguito si modifichi l'immagine originale nell'allegato e la volta successiva venga nuovamente ridimensionata. Cosa succede quando si esegue l'applicazione una terza volta? Come fa l'app a sapere quando non è possibile ridimensionare l'immagine? È possibile impostare alcuni attributi aggiuntivi nell'allegato dell'immagine per consentire all'applicazione di non ridimensionare l'immagine. –
1) Sto memorizzando la NSAttribuitedString completa all'interno dei dati principali. – nick28
2) Sì, questa potrebbe essere la ragione. L'app si comporta allo stesso modo nella terza esecuzione o dopo 3) Da quello che ho letto altre domande è che il NSTextAttachment predefinito prende la dimensione dell'immagine come suo limite. Questo mi ha aiutato in fare un lavoro e risolverlo – nick28