建议用户将新照片添加到 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())
}
}
}
}
}
}
}
在我的 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())
}
}
}
}
}
}
}