gpt4 book ai didi

swift - 手动设置导航项的 titleView 未垂直对齐

转载 作者:行者123 更新时间:2023-11-28 10:51:41 28 4
gpt4 key购买 nike

我在 UIViewController 扩展中使用这个函数来添加一个调整字体以适应宽度的标题。

extesion UIViewController {
func setTitleDifferentSizes(title: String){
self.title = title
guard let navigationBarHeight: CGFloat =
self.navigationController?.navigationBar.frame.height else{
return
}

let tlabel = UILabel(frame: CGRect(x: 0.0, y: 0.0, width:
200.0, height: navigationBarHeight))
tlabel.text = self.title
tlabel.textColor = UIColor.white
tlabel.font = font24
tlabel.backgroundColor = UIColor.clear
tlabel.adjustsFontSizeToFitWidth = true
self.navigationItem.titleView = tlabel
}
}

我从这个 SO question 中提取了这个解决方案并做了一些修改: How to resize Title in a navigation bar dynamically

现在我遇到的问题是标题的文本没有与其他导航栏项目垂直对齐,正如您在图像中看到的那样,我展示了一个我只是在不使用上述方法的情况下设置标题的地方,并且那里的文本不适合,但对齐正确,而另一个图像使用上面的方法,其中文本适合但未对齐。

enter image description here

enter image description here

最佳答案

试试这个:-

   func setTitleDifferentSizes(title: String){
self.title = title
guard let navigationBarHeight: CGFloat =
self.navigationController?.navigationBar.frame.height else{
return
}
let attributedString = NSMutableAttributedString(string: title)

let myAttribute = [ NSForegroundColorAttributeName: UIColor.white ,NSFontAttributeName: font24]

attributedString.addAttributes(myAttribute, range: NSRange(location: 0, length: attributedString.string.characters.count))

attributedString.addAttributes([NSBaselineOffsetAttributeName:6.0], range: NSRange(location: 0, length: title.characters.count)
)

let tlabel = UILabel(frame: CGRect(x: 0.0, y: 0.0, width:
200.0, height: navigationBarHeight))
tlabel.attributedText = attributedString
tlabel.backgroundColor = UIColor.clear
tlabel.adjustsFontSizeToFitWidth = true
tlabel.minimumScaleFactor = 0.2
tlabel.textAlignment = .center
self.navigationItem.titleView = tlabel
}

如果要调整文本的位置,请更改 NSBaselineOffsetAttributeName 的浮点值以设置垂直对齐方式。

关于swift - 手动设置导航项的 titleView 未垂直对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45916813/

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