Informationen zu SwiftPackageManager (im Folgenden: SwiftPM), das für die Entwicklung von iOS-Anwendungen aus Xcode 11 verwendet werden kann und mit Xcode 12, das neulich veröffentlicht wurde, erheblich einfacher geworden ist. In diesem Artikel wird erläutert, wie Sie es in das Projekt einführen und eine eigene Bibliothek für SwiftPM erstellen. Es wird eine Methode zum Erstellen Ihrer eigenen Bibliothek sein.
↓ Klicken Sie hier für die Installationsmethode
[Xcode starten] → [Datei] → [Neu] → [Schnelle Pakete]
[Projektname] → [Erstellen]
Bildschirm erstellt Diesmal liegt es also an der Registrierung meiner eigenen Bibliothek
Ich werde es nur berühren. (Wenn ja, sollten Sie auch einen Test schreiben.)
Beschreiben Sie in Package.swift die URL der Zieldatei oder externen Bibliothek, die Sie laden möchten. Laden Sie dieses Mal Nuke mit einer externen Bibliothek, erweitern Sie UIImage und laden Sie Nuke auf der UIImage-Seite.
Package.swift
// swift-tools-version:5.3
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "MyLibrary",
platforms:[.iOS(.v11)], //Zu verwendende Plattform (iOS 11 oder höher dieses Mal)
products: [
.library(
name: "MyLibrary",
targets: ["MyLibrary"]),
],
dependencies: [
.package(url: "https://github.com/kean/Nuke.git", from: "9.1.2") //Externe Bibliothek, die Sie laden möchten
],
targets: [
depends on.
.target(
name: "MyLibrary",
dependencies: [
.product(name: "Nuke", package: "Nuke") //Verwenden Sie die geladene Bibliothek
]),
.testTarget(
name: "MyLibraryTests",
dependencies: ["MyLibrary"]),
]
)
Damit ist die Verwendung der Bibliothek abgeschlossen.
MyLibrary.swift
import UIKit
import Nuke
public enum ProcessorsOption {
case resize
case resizeRound(radius: CGFloat)
case resizeCircle
}
public typealias AspectMode = ImageProcessors.Resize.ContentMode
public extension UIImageView {
func loadUrl(imageUrl: String?,
processorOption: ProcessorsOption = ProcessorsOption.resize,
aspectMode: AspectMode = .aspectFill,
crop: Bool = false,
placeHolder: UIImage? = nil,
failureImage: UIImage? = nil,
contentMode: UIView.ContentMode? = nil) {
guard let url: String = imageUrl,
let loadUrl: URL = URL(string: url) else {
self.image = failureImage
return
}
let resizeProcessor = ImageProcessors.Resize(size: self.bounds.size,
contentMode: aspectMode, crop: crop)
let processors: [ImageProcessing]
switch processorOption {
case .resize:
processors = [resizeProcessor]
case .resizeRound(let radius):
processors = [resizeProcessor, ImageProcessors.RoundedCorners(radius: radius)]
case .resizeCircle:
processors = [resizeProcessor, ImageProcessors.Circle()]
}
let request = ImageRequest(
url: loadUrl,
processors: processors
)
var contentModes: ImageLoadingOptions.ContentModes?
if let mode = contentMode {
contentModes = ImageLoadingOptions.ContentModes.init(success: mode,
failure: mode, placeholder: mode)
}
let loadingOptions = ImageLoadingOptions(placeholder: placeHolder,
failureImage: failureImage, contentModes: contentModes)
Nuke.loadImage(with: request, options: loadingOptions, into: self)
}
}
Ich werde den Inhalt in der Bibliothek weglassen. (Ich habe versucht, die Erweiterung als die zu verwenden, die Nukes Bild lädt und seine Größe ändert.)
So wie es ist, ** wird kein solches Modul 'UIKit' ** angezeigt und es kann nicht erstellt werden.
[Tests] → [MyLibraryTests] → Ändern Sie den Inhalt von [MyLibraryTests.swift]
Ändern Sie den Build von "Mein Mac" in "Beliebiges iOS-Gerät".
Wenn der Build erfolgreich ist, sind Sie fertig.
Verwenden Sie den Git-Befehl oder den Quellbaum, um den zuletzt erstellten festzuschreiben, ein Tag hinzuzufügen und es an github zu senden, und fertig. ↑ Darüber
Bitte beziehen Sie sich auf.
Wenn Sie an eine globale Distribution denken können, empfehlen wir Ihnen, eine Lizenz zu erwerben. So erhalten Sie eine Lizenz für Github
Bitte beziehen Sie sich auf.
Übrigens wird der diesmal erstellte auf github veröffentlicht. Wenn Sie möchten, verwenden Sie es bitte mit Star.
github https://github.com/isamiodagiri/ExtendedImageViewWithNuke
↓ Klicken Sie hier für die Einführungsmethode.
Wie Sie Ihre eigene Bibliothek in SwiftPM registrieren, können Sie nicht nur verstehen, wie Sie eine externe Bibliothek nur als Referenz einführen. "** App Dojo Salon ** ”Menschen kooperierten auch. Vielen Dank.