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. Imagen de Silverlight: cargar URL dinámicamente?
- 5. Cómo cargar una imagen transparente desde ImageList?
- 6. Cargar una imagen de una url en un PictureBox
- 7. FireMonkey iOS RAD Studio XE2 - Mostrar imagen en el formulario cargado desde la URL
- 8. cómo trazar la imagen a distancia (desde la URL http)
- 9. cómo cargar una imagen desde la web en java
- 10. Imagen para el conjunto de bytes desde una URL
- 11. Cómo fundir una imagen en ImageView cargado desde la url
- 12. Rails 3, clip de papel y cargar imagen desde la url remota
- 13. ios: Cómo cargar imágenes de la URL al control de página usando la vista de desplazamiento
- 14. Cómo cargar XML desde URL en XmlDocument()
- 15. Retraso significativo al cargar imágenes usando UIImage desde URL asincrónicamente
- 16. ¿Cómo puedo leer una imagen desde una URL en Java?
- 17. descargar de forma sincrónica una imagen desde una URL
- 18. Silverlight Windows Phone 7: Cargar imágenes desde URL
- 19. CarrierWave URL de la imagen
- 20. Asignación de imagen desde la URL con Dragonfly
- 21. Vista de imagen de Android desde la url
- 22. Django: agregar la imagen en una imagen de ImageField url
- 23. Cargar una imagen a UIImage desde una ruta de archivo a la biblioteca de recursos
- 24. Cómo dibujar una imagen desde una URL de datos a un lienzo
- 25. Cómo cargar imágenes desde la URL en el widget de la aplicación Android?
- 26. Captura donde una imagen no se carga desde una url del src
- 27. Cargar imagen Picturebox de la memoria?
- 28. Cargar URL de búsqueda en el navegador desde Visual Studio
- 29. Cómo recortar una imagen en iOS
- 30. Cargando una imagen de iOS a PHP
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. –