#swiftui-geometryeffect
Вопрос:
Я пытаюсь передать представление между ячейками одного и того же списка. Я видел 0 примеров этого в Интернете. Каждый пример предназначен для того, чтобы иметь предварительный просмотр, который показывает представления.
Я знаю, что могу использовать представление прокрутки, но мне особенно интересно научиться делать это с помощью представления списка.
Это код моей ячейки:
struct SelectableRow: View {
@Binding var selectedCategoryID: Int
@Binding var previousSelectedCategoryID: Int
var category: Category
@Namespace private var namespace
var body: some View {
HStack {
Text(self.category.name.capitalizingFirstLetter())
.font(.body)
.fontWeight(.light)
Spacer()
.background(Color.red)
if category.id == selectedCategoryID {
Circle()
.foregroundColor(.pink)
.aspectRatio(contentMode: .fit)
.frame(height: 30)
.matchedGeometryEffect(id: "Cell(selectedCategoryID)", in: namespace, properties: .frame, anchor: .center, isSource: false)
}
else if category.id == previousSelectedCategoryID {
Circle()
.foregroundColor(.pink)
.aspectRatio(contentMode: .fit)
.frame(height: 30)
.matchedGeometryEffect(id: "Cell(selectedCategoryID)", in: namespace, properties: .frame, anchor: .center, isSource: true)
}
}
.contentShape(Rectangle())
.onTapGesture {
previousSelectedCategoryID = selectedCategoryID
withAnimation {
selectedCategoryID = category.id
}
}
}
}
Это не работает.. Он показывает мне представление как для выбранной ячейки, так и для предыдущей выбранной ячейки, когда я действительно хочу, чтобы представление передавалось анимированно из одной ячейки в другую.
У кого-нибудь есть какие-нибудь идеи, что я делаю не так??