У меня есть функция, которая получает изображение компании из Google Адресов после того, как я передаю идентификатор места. Я могу «распечатать» фотографию и увидеть реальную фотографию из написанной мной функции, я просто не уверен, как вернуть это изображение, чтобы я мог разместить его в представлении. Я думал, что могу вернуть изображение из функции и заменить его в представлении placeHolderImage.
Вот код:
struct RestaurantDetail: View {
var name: String
var placeID: String
var address: String
var city: String
var state: String
var zipCode: String
var phone: String
var about: String
var website: String
var inputLat: Double
var inputLong: Double
var foodType: String
var fileURL: String
@State var placeHolderImage = Image(systemName: "flag.fill")
var body: some View {
ScrollView(.vertical, showsIndicators: false) {
VStack {
placeHolderImage
.resizable()
.aspectRatio(contentMode: .fill)
.frame(height: 150)
.clipped()
.padding(.bottom)
VStack {
HStack {
Text("About")
.font(.title)
.fontWeight(.bold)
Spacer()
}.padding(.horizontal)
.padding(.vertical, 10)
HStack {
Text(about)
.font(.footnote)
Spacer()
}.padding(.horizontal)
.padding(.bottom, 40)
HStack {
Text("Location")
.font(.title)
.fontWeight(.bold)
Spacer()
}.padding(.horizontal)
MapLocation(inputLat: inputLat, inputLong: inputLong, inputTitle: name, inputFoodType: foodType)
.frame(height: 160)
HStack {
Text(name)
.font(.system(size: 20))
.fontWeight(.semibold)
}.padding(.vertical, 10)
HStack {
Text(address) + Text(", ") + Text(city) + Text(", ") + Text(state) + Text(" ") + Text(zipCode)
}.font(.system(size: 13))
}
}
}.onAppear {
self.getPhotos(placesID: self.placeID)
}
}
func getPhotos(placesID: String) -> (UIImage) {
let client = GMSPlacesClient()
print("getPhotos function ran")
client.lookUpPhotos(forPlaceID: placeID) { (metadatalist, err) in
if let err = err {
print("error when looking up photos:", err)
return
}
// print(metadatalist)
guard let firstPhotoMetadata = metadatalist?.results.first else { return }
client.loadPlacePhoto(firstPhotoMetadata) { (image, err) in
if let err = err {
print("Failed to load photo for place:", err)
return
}
guard let placeImage = image else { return }
print(placeImage)
return placeImage
}
}
}
}