Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

134
Views
Establezca UIImage en UIImageView directamente con Kingfisher

Quiero configurar la imagen con UIImage directamente y no desde ninguna fuente, recurso. Ya tengo mi imagen y quiero configurarla con almacenamiento en caché en mi imageView.

 let myImage = UIImage kingfisherView.kf.setImage(with: myImage)

quiero que esto se haga como configuré la imagen en UIImageView, es decir

 UIImageView.image = myImage

Pero con el almacenamiento en caché

no estoy descargando imágenes de una fuente, las estoy generando yo mismo (Latex). y almacenarlos en caché con

 let cache = ImageCache.default cache.store(renderedLaTeX ?? UIImage(), forKey: "image\(indexPath.row)")

Solo quiero configurar esa imagen en caché en mi imageView.

UIImage.image = cachedImage

no funciona y carga la imagen una y otra vez a medida que me desplazo hacia arriba y hacia abajo en CollectionViewCell

O cualquier otra forma de hacer esto para que no tenga que cargar imageView con una imagen una y otra vez. Mi ImageView está dentro UICollectionViewCell

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Puede almacenar una imagen ya existente en la memoria caché de Kingfisher:

 let image: UIImage = //... ImageCache.default.store(image, forKey: cacheKey)

Por defecto, Kingfisher usa url.absoluteString como cacheKey .

Entonces, si ya descargó una imagen de algún lugar y aún tiene esta URL, puede almacenarla en caché usted mismo y la próxima vez Kingfisher no descargará la imagen, sino que usará una almacenada en caché.

Si solo desea almacenar en caché sin descargar, puede recuperar la imagen de la siguiente manera:

 cache.retrieveImage(forKey: "cacheKey") { result in switch result { case .success(let value): print(value.cacheType) // If the `cacheType is `.none`, `image` will be `nil`. print(value.image) case .failure(let error): print(error) } }

Pero como lo usa dentro de la vista de colección, asegúrese de dejar de cargar en la reutilización de collectionViewCell

Ejemplo en celda:
Almacenamos imageKey dentro de la celda y cuando Cache nos devuelve la imagen, nos aseguramos de que la celda aún no se haya reutilizado y aún necesite esta imagen. Si la celda se reutiliza, entonces en prepareToReuse() eliminamos imageKey almacenada

 class LatexCell: UICollectionViewCell { @IBOutlet var formulaImageView: UIImageView! private var imageKey: String? func setup(with imageKey: String) { self.imageKey = imageKey ImageCache.default.retrieveImage(forKey: imageKey) { [weak self] result in guard self?.imageKey == imageKey else { return } // cell have been reused switch result { case .success(let value): self?.formulaImageView.image = value.image case .failure(let error): break /// no image stored, you should create new one } } } override func prepareForReuse() { super.prepareForReuse() imageKey = nil formulaImageView.image = nil // Probably want here placeholder image } }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!