gpt4 book ai didi

ios - 使用 CGAffineTransform 将 UILabel 字体大小减小到精确点

转载 作者:行者123 更新时间:2023-11-28 23:38:50 26 4
gpt4 key购买 nike

我有一个 UITableView 和一个带有自定义标题标签的 UINavigationBar。我想在向下滚动时减小标题标签字体大小并在向上滚动时增加它。

这是我的代码

override func viewDidLoad() {
super.viewDidLoad()
myLabel.font = UIFont(name: "Arial", size: 17)
}

我在这里设置标签的字体大小。

然后,我像这样变换字体大小

func scrollViewDidScroll(_ scrollView: UIScrollView) {

let offset = scrollView.contentOffset.y
let scale = min(max(1.0 - offset / 200.0, 0.0), 1.0)
myLabel.transform = CGAffineTransform(scaleX: scale, y: scale)
}

问题是,这样设置最小分值为0,但我希望我的标签减少到11分,等等。

谁能帮我修改我的代码?

最佳答案

用这个公式计算最终的比例

let defualtFontSize = 17.0
let minFontSize = 11.0
let finalFontSize = CGFloat(minFontSize / defualtFontSize)

然后在这里使用finalFontSize

let scale = min(max(1.0 - offset / 200.0, finalFontSize), 1.0)

完整代码

  func scrollViewDidScroll(_ scrollView: UIScrollView) {


let defualtFontSize = 17.0
let minFontSize = 11.0
let finalFontSize = CGFloat(minFontSize / defualtFontSize)

let offset = scrollView.contentOffset.y
let scale = min(max(1.0 - offset / 200.0, finalFontSize), 1.0)
myLabel.transform = CGAffineTransform(scaleX: scale, y: scale)
}

但是将计算写在scrollViewDidScroll之外的某个地方,避免CPU使用。

关于ios - 使用 CGAffineTransform 将 UILabel 字体大小减小到精确点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54098315/

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