我使用以下代码创建一个带有 TabViewSwiftUI :

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 ,结果如下:

ios - SwiftUI:在 TabView 中调整图像的位置-LMLPHP

我需要将 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/

10-13 01:56