Come posso impostare il colore di un'immagine basata su modello che è un allegato su una stringa attribuita?Come impostare il colore dell'immagine in formato NSTextAttachment
Background:
Ho un UILabel e sto impostando il suo attributedText a un NSAttributedString. NSAttributedString include un NSTextAttachment con una piccola immagine. Ora voglio fare in modo che il colore dell'immagine corrisponda al colore del testo e non riesco a capire come farlo funzionare.
Normalmente mi aspetto di colorare l'immagine impostando la sua modalità di rendering su UIImageRenderingModeAlwaysTemplate e quindi impostando tintColor sul UIView contenente. Ho provato a impostare tintColor sulla mia UILabel, ma ciò non ha alcun effetto.
Ecco il mio codice. E 'in Ruby (RubyMotion) quindi la sintassi potrebbe apparire un po' strano, ma le mappe 1: 1 con Objective C.
attachment = NSTextAttachment.alloc.initWithData(nil, ofType: nil)
attachment.image = UIImage.imageNamed(icon_name).imageWithRenderingMode(UIImageRenderingModeAlwaysTemplate)
label_string = NSMutableAttributedString.attributedStringWithAttachment(attachment)
label_string.appendAttributedString(NSMutableAttributedString.alloc.initWithString('my text', attributes: { NSFontAttributeName => UIFont.preferredFontForTextStyle(UIFontTextStyleFootnote), NSForegroundColorAttributeName => foreground_color }))
label = UILabel.alloc.initWithFrame(CGRectZero)
label.tintColor = foreground_color
label.attributedText = label_string
label.textAlignment = NSTextAlignmentCenter
label.numberOfLines = 0
Hai trovato qualche risposta a questo che non comporta il disegno dell'immagine prima di aggiungerla come allegato di testo? Mi piacerebbe avere un modo semplice per farlo. –
Purtroppo no. Nel mio caso, avevo una stringa che a volte era bianca su uno sfondo scuro e talvolta nera su uno sfondo chiaro ... Alla fine ho solo cambiato l'immagine dell'allegato in un grigio neutro che funzionava su entrambi gli sfondi. – Ghazgkull