我使用以下代码创建一个带有 TabView
的 SwiftUI
:
struct TabbedView: View {
@State private var selected = 0
var body: some View {
TabView(selection: $selected) {
View1().tabItem {
Image("Tab1")
}.tag(1)
View2().tabItem {
Image("Tab2")
.offset(y: 20) //<--- has no effect
}.tag(2)
View3().tabItem {
Image("Tab3")
}.tag(3)
}
}
}
对于没有文本的选项卡项,我仅使用
Image
View ,结果如下:我需要将
Image
View 定位(或垂直对齐)到 TabView
的中心,但找不到直接的方法。 最佳答案
标准 TabView
现在不允许更改 tabItem
内容的对齐方式......但可以基于 Button
创建自定义 float 选项卡类项目,如下所示,这将允许对齐和/或自定义外观和感觉,并仍然以编程方式激活 TabView 项目。
struct TabbedView: View {
@State private var selected = 0
var body: some View {
ZStack(alignment: Alignment.bottom) {
TabView(selection: $selected) {
View1().tabItem {
Text("") // < invisible tab item
}.tag(1)
View2().tabItem {
Text("")
}.tag(2)
View3().tabItem {
Text("")
}.tag(3)
}
// tab-items cover - do anything needed, height, position, alignment, etc.
HStack {
Button(action: { self.selected = 1 } ) {
Image("Tab1") // << align & highlight as needed
}
Button(action: { self.selected = 2 } ) {
Image("Tab2") // << align & highlight as needed
}
Button(action: { self.selected = 3 } ) {
Image("Tab3") // << align & highlight as needed
}
}
}
}
}
注意:它甚至可以是没有按钮的,只是带有点击手势的图像等。
关于ios - SwiftUI:在 TabView 中调整图像的位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59912812/