Necesito cargar una imagen desde una url y configurarla dentro de un UIImageView; el problema es que no sé el tamaño exacto de la imagen, entonces ¿cómo puedo mostrar la imagen correctamente?iOS: cargar una imagen desde la url
Respuesta
Sólo tiene que utilizar la propiedad tamaño del UIImage, por ejemplo:
NSURL *url = [NSURL URLWithString:path];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *img = [[UIImage alloc] initWithData:data];
CGSize size = img.size;
O configure el tamaño que desea en la vista de imagen y simplemente estire la imagen una vez que se haya descargado para adaptarse a la vista de la imagen. (Debes estirar Y mantener el aspecto, todo lo demás se ve raro) –
ah bien ... pero no entiendo cómo cambiar el tamaño de esta imagen para mi imageView; Tengo que crear una miniatura y no tengo mucho espacio para mi imageView (máximo 236 de ancho y máximo de 60 de alto); en este espacio debería cargar image de url pero debería ser proporcional ... – CrazyDev
Creo que lo que quieres es configurar el contentMode del UIImageView en UIContentViewScaleAspectFit. Pero eche un vistazo a la documentación. – fbernardo
en Swift:
var url = NSURL.URLWithString("http://www.example.com/picture.png")
var data = NSData(contentsOfURL : url)
var image = UIImage(data : data)
image.size // if you need it
en Swift respecto utilizando opcionales:
var url:NSURL? = NSURL(string: imageString)
var data:NSData? = NSData(contentsOfURL : url!)
var image = UIImage(data : data!)
Esto se bloqueará si el archivo de imagen no está en la cadena de imagen especificada. – Suragch
¡Haz uso de las declaraciones if lets! Este es un código inseguro y se bloqueará si url es nulo –
en Swift 3.0
El hilo principal debe permanecer siempre libre para que sirva a la interfaz de usuario y las interacciones del usuario.
class ViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
private func fetchImage() {
let imageURL = URL(string: "https://i.stack.imgur.com/9z6nS.png")
var image: UIImage?
if let url = imageURL {
//All network operations has to run on different thread(not on main thread).
DispatchQueue.global(qos: .userInitiated).async {
let imageData = NSData(contentsOf: url)
//All UI operations has to run on main thread.
DispatchQueue.main.async {
if imageData != nil {
image = UIImage(data: imageData as! Data)
self.imageView.image = image
self.imageView.sizeToFit()
} else {
image = nil
}
}
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
fetchImage()
}
}
para descargar la imagen asíncrono con la biblioteca de Kingfisher puede seguir este paso, url: https://github.com/onevcat/Kingfisher:
func imageFromUrl(_ urlString: String) {
if let url = URL(string: urlString) {
ImageDownloader.default.downloadImage(with: url, options: [], progressBlock: nil) {
(image, error, url, data) in
DispatchQueue.main.async {
self.imageView.image = image
}
}
}
}
También puede descargar la imagen por defecto con URLSession.shared.dataTask
func imageFromUrl(_ urlString: String) {
if let url = URL(string: urlString) {
let request = URLRequest(url: url)
URLSession.shared.dataTask(with: request) {(data,response,error) in
if let imageData = data as Data? {
if let img = UIImage(data: imageData){
DispatchQueue.main.async {
self.imageView.image = img
}
}
}
}
}
}
- 1. ¿Cómo puedo cargar una imagen desde una URL en PHP
- 2. Cargar imagen de la url
- 3. cargar .emacs desde la url
- 4. Facebook API cargar foto desde la URL
- 5. Imagen de Silverlight: cargar URL dinámicamente?
- 6. Cómo cargar una imagen transparente desde ImageList?
- 7. Cargar una imagen de una url en un PictureBox
- 8. FireMonkey iOS RAD Studio XE2 - Mostrar imagen en el formulario cargado desde la URL
- 9. cómo cargar una imagen desde la web en java
- 10. cómo trazar la imagen a distancia (desde la URL http)
- 11. Imagen para el conjunto de bytes desde una URL
- 12. Cómo fundir una imagen en ImageView cargado desde la url
- 13. Rails 3, clip de papel y cargar imagen desde la url remota
- 14. ios: Cómo cargar imágenes de la URL al control de página usando la vista de desplazamiento
- 15. Cómo cargar XML desde URL en XmlDocument()
- 16. Retraso significativo al cargar imágenes usando UIImage desde URL asincrónicamente
- 17. ¿Cómo puedo leer una imagen desde una URL en Java?
- 18. descargar de forma sincrónica una imagen desde una URL
- 19. carga la imagen en Facebook ios
- 20. Silverlight Windows Phone 7: Cargar imágenes desde URL
- 21. CarrierWave URL de la imagen
- 22. Asignación de imagen desde la URL con Dragonfly
- 23. Vista de imagen de Android desde la url
- 24. Cargar una imagen a UIImage desde una ruta de archivo a la biblioteca de recursos
- 25. Django: agregar la imagen en una imagen de ImageField url
- 26. Cómo dibujar una imagen desde una URL de datos a un lienzo
- 27. Cómo cargar imágenes desde la URL en el widget de la aplicación Android?
- 28. Captura donde una imagen no se carga desde una url del src
- 29. Cargar imagen Picturebox de la memoria?
- 30. Buscando esquema URL (fb: //) para la nueva aplicación Facebook iOS 5 para abrir directamente una imagen
Por qué ¿Sería eso un problema? Una vez que la imagen se descargue, sabrá su tamaño. También puede hacer que la imagen vea el tamaño que desea y estirar la imagen para que encaje. –