burger menu pos

This commit is contained in:
cheykrym 2025-08-14 02:27:34 +03:00
parent f172e33123
commit 927ac45ec8

View File

@ -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
} }
} }