建议用户将新照片添加到 collection

Suggest user to add new photo to collection

在我的 Tinder-like 应用中,用户会将图片上传到他的个人资料,以显示给其他用户。

最大照片数为 3 张,一旦用户上传了一张图片,它将使用添加按钮创建另一张 'blank screen'。

代码运行完美,但不会创建另一个图片上传部分。

struct Person: Hashable, Identifiable {
    var personImages: [UIImage?] = []
}

var person: Person

var body: some View {

HStack {
    ForEach(0..<person.personImages.count) { imageIndex in
        RoundedRectangle(cornerRadius: 20)
            .frame(height: 4)
            .foregroundColor(self.imageIndex == imageIndex ? Color.white : Color.gray.opacity(0.5))
    }
  }
}

这里是 imageIndex 的意思:

func updateImageIndex(addition: Bool) {
    let newIndex: Int
    
    if addition {
        newIndex = imageIndex + 1
    } else {
        newIndex = imageIndex - 1
    }

    imageIndex = min(max(0, newIndex), person.personImages.count - 1)
}

我只能猜测......但我想你想要这样的东西:

struct Person: Hashable {
    var personImages: [UIImage?] = []
}

struct ContentView: View {
    @State private var person = Person()
    
    @State private var imageIndex: Int = 0
    
    var body: some View {
        
        VStack {
            HStack {
                ForEach(person.personImages, id:\.self) { image in
                    RoundedRectangle(cornerRadius: 20)
                        .frame(width: 60, height: 100)
                        .foregroundColor(.blue)
                }
                if person.personImages.count < 3 {
                ZStack {
                    RoundedRectangle(cornerRadius: 20)
                        .frame(width: 60, height: 100)
                        .foregroundColor(.gray.opacity(0.5))
                    Button("+") {
                        person.personImages.append(UIImage())
                    }
                }
                }
            }
        }
    }
}