Предотвратить анимирование MatchedeDegeTryEffect во время переходаIOS

Программируем под IOS
Ответить
Anonymous
 Предотвратить анимирование MatchedeDegeTryEffect во время перехода

Сообщение Anonymous »

Я пытаюсь представить модал, который содержит элемент с использованием matchededegetryeffect . Я столкнулся с проблемой - если я оживляю переход, анимат MatchededegetryEffect . Я бы хотел, чтобы это не оживляло в первый раз, а только в ответ на действие пользователя. < /P>
Минимальный пример: < /p>

Код: Выделить всё

struct Modal: View {
@Namespace private var modalNamespace
var body: some View {
HStack {
Text("Option 1")
.matchedGeometryEffect(id: "option1", in: modalNamespace)
Text("Option 2")
.matchedGeometryEffect(id: "option2", in: modalNamespace)
}
.frame(maxWidth: .infinity)
.background(
Color.blue
.matchedGeometryEffect(id: "option2", in: modalNamespace, isSource: false)
)
}
}

struct ContentView: View {
@State private var showModal: Bool = false
var body: some View {
ZStack {
Button {
withAnimation {
showModal = true
}
} label: {
Text("Show modal")
}
if showModal {
Color.gray
.onTapGesture {
showModal = false
}
VStack {
Spacer()
Modal()
Spacer()
}
.transition(.move(edge: .bottom))
}
}
}
}
В реальном приложении модальный содержит сегментированный элемент управления, который использует MatchedgeMetryEffect . Я хочу сохранить анимацию в ответ на действие пользователя, но я действительно хочу удалить эту нежелательную анимацию во время перехода View. :)


Подробнее здесь: https://stackoverflow.com/questions/797 ... transition
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»