gpt4 book ai didi

ios - 如何将导航栏大标题转换为多行,居中对齐

转载 作者:行者123 更新时间:2023-12-01 15:52:13 32 4
gpt4 key购买 nike

我正在尝试设计具有多行居中大标题文本的 View Controller ,就像苹果的 Ask Siri ( Settings->General->Keyboards->About Ask Siri, Dictation and Privacy... )。
Settings->General->Keyboards->About Ask Siri
On scroll
我可以使用以下方法实现居中文本:

let paragraph = NSMutableParagraphStyle()
paragraph.alignment = .center
navigationController?.navigationBar.largeTitleTextAttributes = [.paragraphStyle: paragraph]
我确实从 Storyboard 中设置了导航标题并尝试了这些以实现多行大标题:
  • https://stackoverflow.com/a/51295457/4061501
  • https://stackoverflow.com/a/48388588/4061501

  • 但它们都不适用于 iOS 13。

    最佳答案

    您可以通过向 ScrollView 添加多行标签然后在 scrollViewDidScroll 中显示/隐藏导航项标题来实现此目的。 scrollView 的委托(delegate)方法取决于垂直 scrollView 偏移量。

    func scrollViewDidScroll(_ scrollView: UIScrollView) {
    if scrollView.contentOffset.y > myLabelHeight && navigationItem.title == "" {
    setTitle(hidden: false)
    } else if scrollView.contentOffset.y <= myLabelHeight && navigationItem.title == "MyTitleString" {
    setTitle(hidden: true)
    }
    }
    我添加了一个图层过渡来实现淡入淡出效果。
    func setTitle(hidden: Bool) {
    let animation = CATransition()
    animation.duration = 0.25
    animation.type = .fade

    navigationController?.navigationBar.layer.add(animation, forKey: "fadeText")

    if hidden {
    navigationItem.title = ""
    } else {
    navigationItem.title = "MyTitleString"
    }
    }
    不要忘记在 viewDidLoad 中将导航项标题设置为空字符串.

    关于ios - 如何将导航栏大标题转换为多行,居中对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62588368/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com