You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI实现图片与文字均带下划线的多行按钮需求咨询

SwiftUI 实现带前置图片的全下划线多行按钮

直接上满足所有需求的实现代码:

struct ImageLeadingUnderlinedButton: View {
    var body: some View {
        Button(action: {
            // 替换成你的点击逻辑
            print("按钮被点击")
        }) {
            // 将图片作为Text的一部分,和后续文本拼接
            Text(Image(systemName: "link"))
                + Text("这是一段支持多行显示的按钮文本,\n换行后所有内容包括前置图片都会带有下划线,完全符合需求")
                .underline() // 给整个组合内容添加下划线
                .fixedSize(horizontal: false, vertical: true) // 开启多行自动换行
        }
        .buttonStyle(.plain) // 去掉默认按钮样式,避免干扰下划线显示
    }
}

#Preview {
    ImageLeadingUnderlinedButton()
}

关键特性说明:

  • 图片作为文本首元素:通过Text(Image(...))把图片嵌入Text组件,再和普通文本拼接,图片会和文本保持一致的排版基线,完全像文本的第一个「字符」。
  • 全内容下划线:.underline()修饰的是整个拼接后的Text,所以图片和所有文本都会被加上下划线。
  • 多行显示支持:fixedSize(horizontal: false, vertical: true)让文本在水平方向自适应容器宽度,垂直方向自动换行;也可以用.lineLimit(nil)实现类似效果,按需选择。
  • 按钮样式适配:用.buttonStyle(.plain)去掉默认按钮的背景和边框,确保下划线完整显示,如果你需要自定义按钮样式,也可以替换成自己的样式实现。

内容的提问来源于stack exchange,提问作者Leo Joseph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 09:37:37