Здравствуйте, я создал пользовательскую панель вкладок в Swift UI, содержащую 6 вкладок, каждая из которых встроена в представление nivation. Когда я выбираю 5-ю или 6-ю вкладку, вверху я вижу кнопку «Еще». Это почти как кнопка «Назад» для навигационных ссылок. Как я могу удалить это? Я попробовал использовать Navigationbarbackbuttonhidden(true), но это не сработало. Я также попробовал добавить .toolbar(.hidden, for: .tabbar) в свой tabView, и это тоже не сработало. Буду признателен за любую помощь, чтобы избавиться от этой кнопки. Спасибо.
import SwiftUI
import Combine
import MapKit
struct MainTabView: View {
@State private var selectedTab = 0
@EnvironmentObject var pop: PopToRoot
@Namespace var animation
init() {
UITabBar.appearance().isHidden = true
}
var body: some View {
TabView(selection: $selectedTab){
NavigationView(){
FeedView()
}.tag(1)
NavigationView(){
JobsView()
}.tag(2)
NavigationView(){
ExploreView()
}.tag(3)
NavigationView(){
QuestionView()
}.tag(4)
NavigationView(){
MessagesHomeView()
}.tag(5)
NavigationStack {
ProfileView()
}.tag(6)
}
.overlay (
HStack {
TabBarButton(change: $selectedTab, title: "Home", index: 1, image: selectedTab == 1 ? "h.circle.fill" : "h.circle", animation: animation)
TabBarButton(change: $selectedTab, title: "Jobs/Shop", index: 2, image: "", animation: animation)
TabBarButton(change: $selectedTab, title: "Explore", index: 3, image: "magnifyingglass", animation: animation)
TabBarButton(change: $selectedTab, title: "Ask", index: 4, image: "questionmark", animation: animation)
TabBarButton(change: $selectedTab, title: "Messages", index: 5, image: selectedTab == 5 ? "message.fill" : "message", animation: animation)
TabBarButton(change: $selectedTab, title: "Profile", index: 6, image: selectedTab == 6 ? "person.crop.circle.fill" : "person.crop.circle", animation: animation)
}
, alignment: .bottom
)
}
}
struct TabBarButton: View {
@Binding var change: Int
var title: String
var index: Int
var image: String
var animation: Namespace.ID
@EnvironmentObject var popRoot: PopToRoot
var body: some View{
Button {
change = index
withAnimation {
popRoot.tab = index
}
} label: {
VStack {
Image(systemName: image).font(.title2)
Text(title).font(.system(size: 10))
}
.foregroundColor(popRoot.tab == index ? .orange : .primary.opacity(0.5))
.frame(maxWidth: .infinity)
.overlay (
ZStack {
if popRoot.tab == index {
TabIndicator()
.fill(.orange.gradient)
.matchedGeometryEffect(id: "TAB", in: animation)
.padding(.top, -9)
.padding(.horizontal, 8)
}
}
)
}
}
}
struct TabIndicator: Shape {
func path(in rect: CGRect) -> Path {
let newRect = CGRect(x: rect.origin.x, y: rect.origin.y, width: rect.width, height: 3)
return Path { path in
path.addRect(newRect)
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/769 ... th-5-items
Удалить кнопку «Еще» из представления навигации для панели настраиваемых вкладок, содержащей более 5 элементов. ⇐ IOS
Программируем под IOS
1719921326
Anonymous
Здравствуйте, я создал пользовательскую панель вкладок в Swift UI, содержащую 6 вкладок, каждая из которых встроена в представление nivation. Когда я выбираю 5-ю или 6-ю вкладку, вверху я вижу кнопку «Еще». Это почти как кнопка «Назад» для навигационных ссылок. Как я могу удалить это? Я попробовал использовать Navigationbarbackbuttonhidden(true), но это не сработало. Я также попробовал добавить .toolbar(.hidden, for: .tabbar) в свой tabView, и это тоже не сработало. Буду признателен за любую помощь, чтобы избавиться от этой кнопки. Спасибо.
import SwiftUI
import Combine
import MapKit
struct MainTabView: View {
@State private var selectedTab = 0
@EnvironmentObject var pop: PopToRoot
@Namespace var animation
init() {
UITabBar.appearance().isHidden = true
}
var body: some View {
TabView(selection: $selectedTab){
NavigationView(){
FeedView()
}.tag(1)
NavigationView(){
JobsView()
}.tag(2)
NavigationView(){
ExploreView()
}.tag(3)
NavigationView(){
QuestionView()
}.tag(4)
NavigationView(){
MessagesHomeView()
}.tag(5)
NavigationStack {
ProfileView()
}.tag(6)
}
.overlay (
HStack {
TabBarButton(change: $selectedTab, title: "Home", index: 1, image: selectedTab == 1 ? "h.circle.fill" : "h.circle", animation: animation)
TabBarButton(change: $selectedTab, title: "Jobs/Shop", index: 2, image: "", animation: animation)
TabBarButton(change: $selectedTab, title: "Explore", index: 3, image: "magnifyingglass", animation: animation)
TabBarButton(change: $selectedTab, title: "Ask", index: 4, image: "questionmark", animation: animation)
TabBarButton(change: $selectedTab, title: "Messages", index: 5, image: selectedTab == 5 ? "message.fill" : "message", animation: animation)
TabBarButton(change: $selectedTab, title: "Profile", index: 6, image: selectedTab == 6 ? "person.crop.circle.fill" : "person.crop.circle", animation: animation)
}
, alignment: .bottom
)
}
}
struct TabBarButton: View {
@Binding var change: Int
var title: String
var index: Int
var image: String
var animation: Namespace.ID
@EnvironmentObject var popRoot: PopToRoot
var body: some View{
Button {
change = index
withAnimation {
popRoot.tab = index
}
} label: {
VStack {
Image(systemName: image).font(.title2)
Text(title).font(.system(size: 10))
}
.foregroundColor(popRoot.tab == index ? .orange : .primary.opacity(0.5))
.frame(maxWidth: .infinity)
.overlay (
ZStack {
if popRoot.tab == index {
TabIndicator()
.fill(.orange.gradient)
.matchedGeometryEffect(id: "TAB", in: animation)
.padding(.top, -9)
.padding(.horizontal, 8)
}
}
)
}
}
}
struct TabIndicator: Shape {
func path(in rect: CGRect) -> Path {
let newRect = CGRect(x: rect.origin.x, y: rect.origin.y, width: rect.width, height: 3)
return Path { path in
path.addRect(newRect)
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/76934224/remove-more-button-from-navigation-view-for-custom-tab-bar-with-5-items[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия