SwiftUI, как обновить вновь выбранные изображения в ячейках - PullRequest
0 голосов
/ 19 февраля 2020

Я создаю приложение iOS и хочу отобразить какое-то изображение по умолчанию (или просто пустое) в виде строки, а затем обновить их до новых выбранных изображений пользователями. Как приложение выглядит в настоящее время Как я могу обновить изображения в ячейках, чтобы они были новыми, выбранными пользователями?

Так я создаю виды строк и ячейки

import SwiftUI

struct Row: Identifiable {
    let id = UUID()
    let cells: [Cell]
}

extension Row {

}

extension Row {

    static func all() -> [Row] {
        var resultRow = [Row]()

        for _ in 1...10 {
            resultRow.append(Row(cells: [Cell(imageURL: "camera"), Cell(imageURL: "camera")]))
        }

        return resultRow  
    }    
}

struct Cell: Identifiable {
    let id = UUID()
    let imageURL: String
}

А мой UIView выглядит так

import SwiftUI

struct PhotoUIView: View {
    @State private var showImagePicker: Bool = false
    @State private var image: Image? = nil

    let rows = Row.all()

    var body: some View {

        VStack{

            List {
                ForEach(rows) { row in
                    HStack(alignment: .center) {
                        ForEach(row.cells) { cell in
                            Image(cell.imageURL)
                                .resizable()
                                .scaledToFit()
                        }
                    }
                }
            }.padding(EdgeInsets.init(top: 0, leading: -20, bottom: 0, trailing: -20))

            image?.resizable()
                .scaledToFit()
            if (image == nil) {
                Text("Upload photo to begin quick design")
            }

            Button("Select photo to upload") {
                self.showImagePicker = true
            }.padding()
                .background(Color.blue)
                .foregroundColor(Color.white)
                .cornerRadius(10)

            Button("Begin Quick Design") {
                print("Here we upload photo and get result back") 
            }.padding()
                .background(Color.green)
                .foregroundColor(Color.white)
                .cornerRadius(10)

        }.sheet(isPresented: self.$showImagePicker) {
            PhotoCaptureView(showImagePicker: self.$showImagePicker, image: self.$image)
        }
    }
}

struct PhotoUIView_Previews: PreviewProvider {
    static var previews: some View {
        PhotoUIView()
    }
}

1 Ответ

0 голосов
/ 19 февраля 2020

Таким образом, вы можете создать массив изображений и добавить выбранные изображения с такими именами, как image_0, image_1 и т. Д. А затем добавьте изображения в ячейку, используя массив, например, [i]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...