SwiftUI 大小适合或自动换行导航标题

2023-12-27

我的导航标题在某些较小的设备上太大。 我读过很多方法来设置titleTextAttributes and largeTitleTextAttributes of the UINavigationBar.appearance()但是,当将段落样式设置为自动换行时,似乎删除了标准...剪切并使文本继续离开屏幕边缘而不换行:

init() {
    let paragraphStyle = NSMutableParagraphStyle()
    paragraphStyle.lineBreakMode = .byWordWrapping
    UINavigationBar.appearance().largeTitleTextAttributes = [
        .paragraphStyle: paragraphStyle
    ]
}

我想保持 SwiftUI 行为,其中标题显示为大文本,直到视图向上滚动并移动到导航栏,因此获取.toolbar直接没有帮助。

我也不想只指定较小的字体,因为我只想在必要时缩小或换行。

有人设法实现这一目标吗?


您可以在出现问题的视图的初始值设定项上添加此行

UILabel.appearance(whenContainedInInstancesOf: [UINavigationBar.self]).adjustsFontSizeToFitWidth = true

Example:

struct YourView: View {
    init() {
        UILabel.appearance(whenContainedInInstancesOf: [UINavigationBar.self]).adjustsFontSizeToFitWidth = true
    }

    var body: some View {
        NavigationView {
            Text("Your content")
                .navigationBarTitle("Very very large title to fit in screen")
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SwiftUI 大小适合或自动换行导航标题 的相关文章

随机推荐