SwiftUI:列表中的中心按钮文本

Posted

技术标签:

【中文标题】SwiftUI:列表中的中心按钮文本【英文标题】:SwiftUI: Center button text in List 【发布时间】:2021-09-28 15:34:39 【问题描述】:

如果按钮位于列表中,是否可以将按钮文本居中?

struct HomeView: View 
    var body: some View 
        List 
            ForEach(["1", "2"], id: \.self) 
                Text("\($0)…").frame(maxWidth: .infinity, alignment: .center)
            

            Button("Action button") 
        
    

结果:

PS:

我试过这个:.frame(maxWidth: .infinity, alignment: .center) 但它不起作用

【问题讨论】:

【参考方案1】:

找到解决方案:

Button 
label: 
    Text("Action").frame(maxWidth: .infinity, alignment: .center)

【讨论】:

【参考方案2】:

使用嵌入在 GeometryReader 中的文本和 TapGesture。另外,为了使其更易于点击,请使用.contentShape(Rectangle())

GeometryReader  metrics in
    List 
        ForEach(["1", "2"], id: \.self)  text in
            Text("\(text)…").frame(width: metrics.size.width, alignment: .center)
                .contentShape(Rectangle())
                .onTapGesture 
                    print(text, "pressed")
                
        
    

【讨论】:

以上是关于SwiftUI:列表中的中心按钮文本的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 列表中的自定义按钮

在 SwiftUI 的按钮中放置背景图像和文本/图标?

列表中的 SwiftUI 多个弹出框

SwiftUI - 列表行中的多个按钮

SwiftUI,列表行添加按钮

SwiftUI 中带有文本字段的长列表