目前,我已经在SwiftUI中创建了一个自定义视图,其中包含带有一些详细信息的Image。我们如何在视图实例之外添加特定的图像修改器?
import Foundation
import SwiftUI
import Combine
struct RemoteImage: View {
// Hold reference to our remote resource through binding
@ObjectBinding
private var resource: RemoteResource
// Initialize the Image with a string
init(urlString: String) {
// Create our resource and request our data
// Will fetch the resource from the internet
self.resource = RemoteResource(urlString)
}
// Computed var that will return a placeholder image our our actual resource
private var image: UIImage {
self.resource.data.flatMap(UIImage.init) ?? UIImage(named: "placeholder")!
}
var body: some View {
Image(uiImage: image)
}
}
Run Code Online (Sandbox Code Playgroud)
我将如何从一个实例添加改性剂RemoteImage以Image
RemoteImage(urlString: "image-url-here")
.resizable()
.scaledToFit()
Run Code Online (Sandbox Code Playgroud)
如果有人可以解决我的问题,请告诉我。
如果你像这样声明你的RemoteImage:
import Foundation
import SwiftUI
import Combine
struct RemoteImage: View {
// Hold reference to our remote resource through binding
@ObservedObject
private var resource: RemoteResource
// Initialize the Image with a string
init(urlString: String) {
// Create our resource and request our data
// Will fetch the resource from the internet
self.resource = RemoteResource(urlString)
}
// Computed var that will return a placeholder image our our actual resource
private var image: UIImage {
self.resource.data.flatMap(UIImage.init) ?? UIImage(named: "placeholder")!
}
var body: Image {
Image(uiImage: image)
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样调用所有图像特定的修饰符:
RemoteImage(urlString: "image-url-here").body
.resizable()
.scaledToFit()
Run Code Online (Sandbox Code Playgroud)
并不理想,但至少您不必手动重新声明每个修饰符。
| 归档时间: |
|
| 查看次数: |
420 次 |
| 最近记录: |