微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

动态文本字体 SwiftUI

如何解决动态文本字体 SwiftUI

我正在尝试取文本字段的第一段以使其动态变粗和变大。

我能够获取文本字段的第一段并将其命名为标题

但是使用 .scaledFont 使我的所有文本字段不仅标题更大。我正在努力克服这个问题。

vstack{
            TextEditor(text: $text)
                .scaledFont(name: title,size: 40)
                .onTapGesture {
                    isEditing = true
                }
                .onChange(of: text,perform: { value in
                    if let firstParagraph = value.components(separatedBy: CharacterSet.newlines).first {
                        title = firstParagraph
                        print("TITLE--\(title))
                    }
                })
        }

缩放字体

    struct ScaledFont: ViewModifier {
    @Environment(\.sizeCategory) var sizeCategory
    var name: String
    var size: CGFloat

    func body(content: Content) -> some View {
       let scaledSize = UIFontMetrics.default.scaledValue(for: size)
        return content.font(.custom(name,size: scaledSize))
    }
}

@available(iOS 13,macCatalyst 13,tvOS 13,watchOS 6,*)
extension View {
    func scaledFont(name: String,size: CGFloat) -> some View {
        return self.modifier(ScaledFont(name: name,size: size))
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。