Zeigen Sie Bilder mit AutoLayout-Verhältnis genau mit der Bildladebibliothek Nuke in Swift an

Wenn Sie ein Bild von einer URL zu UIImageView anzeigen, sind Sie möglicherweise für einen Moment ratlos. In diesen Fällen ist es einfacher, eine Bildladebibliothek wie Nuke oder Kingfisher zu verwenden.

Nuke.loadImage(with: url, into: imageView)

Nuke ist bequem für sich zu verwenden, aber es ist notwendig, ein wenig darüber nachzudenken, wie man mit der Möglichkeit umgeht, dass sich das Verhältnis je nach zu ladendem Bild unterscheidet. In diesem Artikel werde ich Ihnen zeigen, wie Sie das Verhältnis berechnen und in solchen Fällen über AutoLayout perfektionieren können.

Nuke.loadImage(with: URL(string: imageURL)!, options: ImageLoadingOptions(), into: self.writingImageView, progress: nil) { (result: Result<ImageResponse, ImagePipeline.Error>) in
      switch result {
      case .success(let imageResponse):
          self.imageRateLayoutConstraint.constant = imageResponse.image.size.width / imageResponse.image.size.height
      case .failure(let error):
          print(error)
      }
  }
}

Sie können die Abschlussoption von Nuke verwenden, um die Größe des erfassten Bilds zu ermitteln und das Verhältnis zu berechnen. Sie können also das AutoLayout aus dem Code ändern, indem Sie es in "imageRateLayoutConstraint.constant" einsetzen.

Um die AutoLayout-Einstellung für das Bild hinzuzufügen, stellen Sie das Seitenverhältnis wie folgt ein:

CleanShot 2020-10-08 at 18.38.37@2x.png

Definieren Sie dann "@IBOutlet schwach var imageRateLayoutConstraint: NSLayoutConstraint!" Und stellen Sie eine Verbindung im Storyboard her.

Recommended Posts

Zeigen Sie Bilder mit AutoLayout-Verhältnis genau mit der Bildladebibliothek Nuke in Swift an
Verwenden Sie die C-Bibliothek mit Swift unter Verwendung von Clang-Modulen (Modulkarte).
Zeigen Sie ein Ladebild in JavaFX an und zeigen Sie dann ein anderes Bild an