我正在做一个有关学校建筑物和楼层的应用程序,并且使用了导航视图,但是,我不想查看显示指示器,因此我发现“ hack”将导航链接的宽度设置为0,并且不透明。当我也想使用上一个NavigationLink进行此操作时,我的应用程序在初始化期间会以错误的访问权限在App Delegate文件中崩溃。当我不使用HStack并在最后一项上使用此“ hack”时,它看起来与其他列表行类似,但不会执行任何操作。只有当下一个视图位于Navigation Link中时,它才起作用,这会导致主屏幕的最后一个List行的外观有所不同。有任何想法吗?非常感谢你。
import SwiftUI
struct BuildingsView: View {
init() {
UITableView.appearance().separatorStyle = .none
}
var body: some View {
NavigationView {
List {
HStack{
BuildingCardView(titleString: "Námestie J. Herdu",subtitleString: "Námestie J. Herdu 2,Trnava",imageString: "namjherdu",infoString: "Rektorát,FMK,FF,FPV,internáty,jedáleň,kancelárie")
NavigationLink(destination: NamJHerduView()) {
EmptyView()}
.frame(width: 0)
.opacity(0)
}
HStack {
BuildingCardView(titleString: "Hajdóczyho",subtitleString: "Jána Hajdóczyho 1,imageString: "hajdoczy",infoString: "Knižnica,učebne,kancelárie,Kino OKO")
NavigationLink(destination: HajdoczyhoView()) {
EmptyView()}
.frame(width: 0)
.opacity(0)
}
HStack {
BuildingCardView(titleString: "Bučianska",subtitleString: "Bučianska 4A,imageString: "bucianska",infoString: "FSV,aula,kancelárie")
NavigationLink(destination: BucianskaView()) {
EmptyView()}
.frame(width: 0)
.opacity(0)
}
HStack {
BuildingCardView(titleString: "V Jame",subtitleString: "V Jame 3,imageString: "vjame",infoString: "FMK,FSV,jedáleň")
NavigationLink(destination: VJameView()) {
EmptyView()}
.frame(width: 0)
.opacity(0)
}
HStack {
BuildingCardView(titleString: "Skladová",subtitleString: "Skladová 3,imageString: "skladova",infoString: "FMK")
NavigationLink(destination: SkladovaView()) {
EmptyView()}
.frame(width: 0)
.opacity(0)
}
NavigationLink(destination: SpacinceView()) {
BuildingCardView(titleString: "Špačince",subtitleString: "Hlavná 6,Špačince",imageString: "spacince",infoString: "FPV,výskumné laboratóriá")}
}
.navigationBarTitle(
Text("Budovy UCM"),displayMode: .large).navigationBarHidden(false)
}
}
}
import SwiftUI
struct BuildingCardView: View {
let titleString: String?
let subtitleString: String?
let imageString: String?
let infoString: String?
init(titleString: String? = "null",subtitleString: String? = "null",imageString: String? = "default",infoString: String? = "null"){
self.titleString = titleString
self.subtitleString = subtitleString
self.imageString = imageString
self.infoString = infoString
}
var body: some View {
VStack {
Image(imageString!)
.resizable()
.frame(minWidth: 0,maxWidth: .infinity,minHeight: 0,maxHeight: 150,alignment: .topLeading)
HStack {
VStack(alignment: .leading) {
Text(titleString!)
.font(.title)
.fontWeight(.black)
.foregroundColor(.primary)
.lineLimit(1)
Text(subtitleString!)
.font(.headline)
.foregroundColor(.secondary)
.lineLimit(3)
Text(infoString!)
.font(.subheadline)
.foregroundColor(.secondary)
.lineLimit(3)
}
.layoutPriority(100)
Spacer()
}
.padding()
}
.cornerRadius(10)
.overlay(
RoundedRectangle(cornerRadius: 10)
.stroke(Color(.sRGB,red: 150/255,green: 150/255,blue: 150/255,opacity: 0.2),lineWidth: 1)
)
}
}
import SwiftUI
struct ContentView: View {
var body: some View {
TabView{
BuildingsView()
.tabItem {
Image(systemName: "house")
Text("Budovy")
}
Text("Vyhľadávanie TBD")
.tabItem {
Image(systemName: "magnifyingglass")
Text("Vyhľadávanie")
}
MapView()
.tabItem {
Image(systemName: "map")
Text("Mapa")
}
}
}
}