动态文本字体 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 (将#修改为@)