burger menu pos
This commit is contained in:
parent
f172e33123
commit
927ac45ec8
@ -92,13 +92,14 @@ struct MainView: View {
|
|||||||
|
|
||||||
let translation = gesture.translation.width
|
let translation = gesture.translation.width
|
||||||
|
|
||||||
if isSideMenuPresented {
|
// Определяем базовое смещение в зависимости от того, открыто меню или нет
|
||||||
// При закрытии двигаем от 0 до -menuWidth
|
let baseOffset = isSideMenuPresented ? menuWidth : 0
|
||||||
self.menuOffset = max(0, menuWidth + translation)
|
|
||||||
} else {
|
// Новое смещение — это база плюс текущий свайп
|
||||||
// При открытии двигаем от 0 до menuWidth
|
let newOffset = baseOffset + translation
|
||||||
self.menuOffset = min(menuWidth, translation)
|
|
||||||
}
|
// Жестко ограничиваем итоговое смещение между 0 и шириной меню
|
||||||
|
self.menuOffset = max(0, min(menuWidth, newOffset))
|
||||||
}
|
}
|
||||||
.onEnded { gesture in
|
.onEnded { gesture in
|
||||||
if !isSideMenuPresented && gesture.startLocation.x > 60 { return }
|
if !isSideMenuPresented && gesture.startLocation.x > 60 { return }
|
||||||
@ -111,7 +112,7 @@ struct MainView: View {
|
|||||||
} else {
|
} else {
|
||||||
isSideMenuPresented = false
|
isSideMenuPresented = false
|
||||||
}
|
}
|
||||||
// Сбрасываем menuOffset, так как isSideMenuPresented теперь главный источник истины
|
// Устанавливаем финальное смещение после анимации
|
||||||
self.menuOffset = isSideMenuPresented ? menuWidth : 0
|
self.menuOffset = isSideMenuPresented ? menuWidth : 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user