我想在圆形视图中创建一个文本视图.字体大小应自动设置为适合圆圈的大小.如何在SwiftUI中实现这一点?我try 了scaledToFill和scaledToFit修饰符,但它们对文本视图没有影响:

struct ContentView : View {
    var body: some View {
        ZStack {
            Circle().strokeBorder(Color.red, lineWidth: 30)
            Text("Text").scaledToFill()
        }
    }
}

推荐答案

人们可以使用GeometryReader,使其也在横向模式下工作.

它首先判断宽度或高度是否较小,然后根据其中较小者调整字体大小.

GeometryReader{g in
    ZStack {
        Circle().strokeBorder(Color.red, lineWidth: 30)
        Text("Text")
            .font(.system(size: g.size.height > g.size.width ? g.size.width * 0.4: g.size.height * 0.4))
    }
}

enter image description here

Swift相关问答推荐

.onReceive NSWindow.CloseNotify是否会为App中的每个窗口调用?

显示第二个操作紧接在另一个操作后的工作表在SwiftUI中不起作用

编写Swift字符串的属性包装时遇到问题

了解SWIFT中的任务行为

从AppKit打开SwiftUI设置

我需要一些关于 SwiftUI 动画的帮助

如何在SwiftUI中更改NSTextView中的 Select colored颜色 ?

Swift String.firstIndex(of: "\n") 返回 nil,即使字符串有 \n

自定义碰撞形状出现在错误的位置

TabView 无法在屏幕上正确显示

Swift Random Float Fatal Error:在无限范围内没有均匀分布

使用 RxSwift 围绕 async/await 方法创建 Observable

为什么 switch 在 optional 中不接受 case nil?

Swift:连接两个数组而不重复共享后缀/前缀

Alamofire 会自动存储 cookie 吗?

在 SwiftUI 中,如何在 UIView 内或作为 UIView 使用 UIHostingController?

Swift 协议只能设置?

快速覆盖属性

在 unwind segue 之后执行 push segue

类型myViewController不符合 Swift 中的协议 UIPIckerDataSource