Создайте полезную боковую панель для ваших пользователей
Сегодня я решил повозиться с представлением SwiftUI, которое позволяет мне легко создавать меню боковой панели для контента внутри моих приложений. После разработки нескольких прототипов я обобщил его в один настраиваемый класс представления с именем SideBarStack
, как показано ниже:
Как видите, в настраиваемом представлении дважды используется оболочка свойств @ViewBuilder
, чтобы вы могли передавать настраиваемое содержимое как для боковой панели, так и для фактического содержимого представления.
Пользовательский SideBarStack
также принимает два параметра: sidebarWidth
и showSidebar
. Первый позволяет представлению правильно переводить как боковую панель, так и основной контент, когда боковая панель открывается и закрывается. Это так же просто, как установить смещение двух представлений в соответствии с переданной шириной.
Во-вторых, showSidebar
bool определяет, открыта ли боковая панель. Он передается как @Binding
, чтобы разрешить TapGesture
быть помещенным в основное содержимое. Это позволяет пользователю коснуться основного содержимого, чтобы закрыть боковую панель, а не только кнопку меню. В коде это работает за счет применения почти полностью прозрачного наложения. SwiftUI не будет запускать жест касания в Color.clear
представлении или представлении с прозрачностью 0
.
Пример использования:
Спасибо за прочтение!