È possibile sovrapporre UIView
con un'immagine senza utilizzare UIImageView
da Interface Builder?Sovrapposizione di UIView con un'immagine di sfondo
In caso contrario, come si compirebbe lo stesso nel codice?
È possibile sovrapporre UIView
con un'immagine senza utilizzare UIImageView
da Interface Builder?Sovrapposizione di UIView con un'immagine di sfondo
In caso contrario, come si compirebbe lo stesso nel codice?
se per sovrastante un'UIView si intende dipingere lo sfondo con un'immagine, si può fare in questo modo:
someView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"yourImage.png"]];
Si potrebbe anche aggiungere un nuovo UIImageView che copre l'UIView dal codice, Init tua UIImageView con lo stesso frame Rect del tuo UIView e aggiungilo come sottoview.
Dalla documentazione UIView:
Immagine a base di sfondi - per le viste che visualizzano contenuti relativamente statici, è consigliabile utilizzare un oggetto UIImageView con sistemi di riconoscimento gesto, invece di sottoclassi e disegnando l'immagine di voi stessi. In alternativa, puoi anche utilizzare un oggetto UIView generico e assegnare la tua immagine come il contenuto dell'oggetto CALayer della vista.
Utilizzando la seconda opzione, per impostare someView di avere uno sfondo di yourImage.png:
someView.layer.contents = (id)[[UIImage imageNamed:@"yourImage.png"] CGImage];
eccellente, grazie. Quindi, non c'è modo di farlo da IB, giusto? – JAM
Esatto, poiché la funzione colorWithPatternImage è un metodo personalizzato, non è un'opzione che appare sull'IB. ci sono solo singoli colori tra cui scegliere. sebbene la stessa operazione possa essere eseguita con IB creando un UIImageView che copre la tua vista e ha lo stesso frame. quando non vuoi che la tua vista sia coperta o meno, puoi semplicemente impostare la sua proprietà .hidden su SÌ/NO. –
Probabilmente opterei per l'opzione 'UIImageView' poiché immagino che sarà più ottimizzato rispetto alla generazione di un pattern che Core Graphics dovrà disegnare dopo aver scoperto la piastrellatura, ecc. –