[英]LPLinkView backgroundColor not working in iOS
我正在使用 LinkPresentation 模塊中的 LPLinkView 在我的應用程序中呈現豐富的鏈接。 但是當我嘗試更改 LPLinkView 的背景顏色時,它呈現如下。
當我嘗試更改 LPLinkView 的子視圖的 backgroundColor 時,UIView 的子視圖屬性返回的數組中沒有元素。 這是我嘗試過的
let linkView = LPLinkView(metadata: metadata)
linkView.backgroundColor = .red
linkView.subviews.forEach { $0.backgroundColor = .red}
我們無法更改設計,但我們可以從中獲取內容並創建自己的視圖。
import SwiftUI
import LinkPresentation
struct LinkModel { let image: Image, title: String?, linkHost: String?, link: URL? }
class LinksDataModel: ObservableObject {
static func fetchMetadata(for url: URL, completion: @escaping (LinkModel?) -> Void) {
let metadataProvider = LPMetadataProvider()
metadataProvider.startFetchingMetadata(for: url) { (metadata, error) in
if let metadata = metadata {
// load image
metadata.imageProvider?.loadObject(ofClass: UIImage.self, completionHandler: { image, err in
if let uiImage: UIImage = image as? UIImage {
let image = Image(uiImage: uiImage)
completion(LinkModel(image: image, title: metadata.title,
linkHost: metadata.url?.host, link: metadata.url))
} else { completion(nil) }
})
} else { completion(nil) }
}
}
}
您可以調用 function onAppear
@State private var linkModel: LinkModel? = nil
if let model = linkModel {
LinkView(model: model)
}
.onAppear {
LinksDataModel.fetchMetadata(for: url) { linkModel in
if let model = linkModel {
DispatchQueue.main.async { self.linkModel = model }
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.