Я изо всех сил пытаюсь не перемещать панель вкладок, когда появляется клавиатура.
Вот код моего основного экрана панели вкладок
var body: some View {
VStack(spacing: 0) {
pomeHeader
switch viewModel.selectedTab {
case .activities:
ActivityView()
case .emotions:
EmotionsView()
.ignoresSafeArea(.all)
case .journal:
JournalView()
case .insights:
InsightsView()
}
customTabBar
}
.onAppear {
dataService.startListening()
}
.onDisappear {
dataService.stopListening()
}
}
.ignoresSafeArea(.keyboard, Edges: .bottom) для панели вкладок не помогает
var body: some View {
ZStack(alignment: .bottom) {
mainContent
searchBar
}
}
вот мои эмоции, где панель поиска находится внизу
Моя панель вкладок находится внутри этого представления
struct MainView: View {
@StateObject private var routerService = AppRouterService.shared
var body: some View {
ZStack {
switch routerService.currentRoute {
case .onboarding:
OnboardingView()
case .userAuth:
UserAuthView()
case .questionire:
QuestionireView()
case .tabBar:
TabBarView()
}
}
.transition(.opacity)
.animation(.easeInOut(duration: 0.5), value: routerService.currentRoute)
}
}
Я пробовал разные решения (также наблюдатель за клавиатурой)
Но я просто хочу, чтобы моя панель вкладок всегда была внизу и поднимала поисковик над клавиатурой
private var searchBar: some View {
HStack {
emotionSearchBar
.opacity(viewModel.searchbarOpened ? 1 : 0)
.animation(.easeInOut(duration: 0.25), value: viewModel.searchbarOpened)
ZStack {
Circle()
.fill(Color.white)
.stroke(Color.borderLight, lineWidth: 2)
Image(.searchIcon)
.resizable()
.frame(width: 24, height: 24)
}
.frame(width: 40, height: 40)
.onTapGesture {
withAnimation(.easeInOut) {
viewModel.searchbarOpened.toggle()
}
searchFocused.toggle()
}
}
.padding([.horizontal, .bottom], 20)
.frame(height: 40)
}
private var emotionSearchBar: some View {
TextField("Enter your emotion", text: $viewModel.searchText)
.focused($searchFocused)
.padding()
.frame(height: 40)
.background {
RoundedRectangle(cornerRadius: 20)
.fill(Color.white)
.stroke(Color.borderLight, lineWidth: 2)
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... h-keyboard
Проблема SwiftUI с клавиатурой ⇐ IOS
Программируем под IOS
1770594893
Anonymous
Я изо всех сил пытаюсь не перемещать панель вкладок, когда появляется клавиатура.
Вот код моего основного экрана панели вкладок
var body: some View {
VStack(spacing: 0) {
pomeHeader
switch viewModel.selectedTab {
case .activities:
ActivityView()
case .emotions:
EmotionsView()
.ignoresSafeArea(.all)
case .journal:
JournalView()
case .insights:
InsightsView()
}
customTabBar
}
.onAppear {
dataService.startListening()
}
.onDisappear {
dataService.stopListening()
}
}
.ignoresSafeArea(.keyboard, Edges: .bottom) для панели вкладок не помогает
var body: some View {
ZStack(alignment: .bottom) {
mainContent
searchBar
}
}
вот мои эмоции, где панель поиска находится внизу
Моя панель вкладок находится внутри этого представления
struct MainView: View {
@StateObject private var routerService = AppRouterService.shared
var body: some View {
ZStack {
switch routerService.currentRoute {
case .onboarding:
OnboardingView()
case .userAuth:
UserAuthView()
case .questionire:
QuestionireView()
case .tabBar:
TabBarView()
}
}
.transition(.opacity)
.animation(.easeInOut(duration: 0.5), value: routerService.currentRoute)
}
}
Я пробовал разные решения (также наблюдатель за клавиатурой)
Но я просто хочу, чтобы моя панель вкладок всегда была внизу и поднимала поисковик над клавиатурой
private var searchBar: some View {
HStack {
emotionSearchBar
.opacity(viewModel.searchbarOpened ? 1 : 0)
.animation(.easeInOut(duration: 0.25), value: viewModel.searchbarOpened)
ZStack {
Circle()
.fill(Color.white)
.stroke(Color.borderLight, lineWidth: 2)
Image(.searchIcon)
.resizable()
.frame(width: 24, height: 24)
}
.frame(width: 40, height: 40)
.onTapGesture {
withAnimation(.easeInOut) {
viewModel.searchbarOpened.toggle()
}
searchFocused.toggle()
}
}
.padding([.horizontal, .bottom], 20)
.frame(height: 40)
}
private var emotionSearchBar: some View {
TextField("Enter your emotion", text: $viewModel.searchText)
.focused($searchFocused)
.padding()
.frame(height: 40)
.background {
RoundedRectangle(cornerRadius: 20)
.fill(Color.white)
.stroke(Color.borderLight, lineWidth: 2)
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79885505/swiftui-issue-with-keyboard[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия