gpt4 book ai didi

ios - 在 SwiftUI 的自定义 View 中访问图像的修饰符

转载 作者:可可西里 更新时间:2023-11-01 05:59:29 25 4
gpt4 key购买 nike

目前,我在 SwiftUI 中制作了一个自定义 View ,其中包含一个带有一些细节的图像。我们如何在我的 View 实例之外添加特定的图像修改器?

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)
}
}

我如何将修饰符从 RemoteImage 实例添加到 Image

RemoteImage(urlString: "image-url-here")
.resizable()
.scaledToFit()

如果有人知道我的问题的解决方案,请告诉我。

最佳答案

如果您这样声明您的 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)
}
}

然后你可以像这样调用所有图像特定的修饰符:

RemoteImage(urlString: "image-url-here").body
.resizable()
.scaledToFit()

不理想,但至少您不必手动重新声明每个修饰符。

关于ios - 在 SwiftUI 的自定义 View 中访问图像的修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56507204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com