Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

139
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda