Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用CGAffineTransform将UILabel字体大小减小到精确点_Ios_Swift_Uiscrollview_Cgaffinetransform - Fatal编程技术网

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

Ios 使用CGAffineTransform将UILabel字体大小减小到精确点,ios,swift,uiscrollview,cgaffinetransform,Ios,Swift,Uiscrollview,Cgaffinetransform,我有一个UITableView和一个带有自定义标题标签的UINavigationBar。我想在向下滚动时减小标题标签字体大小,在向上滚动时增大它 let defualtFontSize = 17.0 let minFontSize = 11.0 let finalFontSize = CGFloat(minFontSize / defualtFontSize) 这是我的密码 override func viewDidLoad() { super.viewDidLoad() my

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

let defualtFontSize = 17.0
let minFontSize = 11.0
let finalFontSize = CGFloat(minFontSize / defualtFontSize)
这是我的密码

override func viewDidLoad() {
    super.viewDidLoad()
    myLabel.font = UIFont(name: "Arial", size: 17)
}
let defualtFontSize = 17.0
let minFontSize = 11.0
let finalFontSize = CGFloat(minFontSize / defualtFontSize)
在这里,我设置了标签的字体大小

let defualtFontSize = 17.0
let minFontSize = 11.0
let finalFontSize = CGFloat(minFontSize / defualtFontSize)
然后,我像这样变换字体大小

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)
}
let defualtFontSize = 17.0
let minFontSize = 11.0
let finalFontSize = CGFloat(minFontSize / defualtFontSize)
问题是,通过这种方式将最小点设置为0,但我希望我的标签减少到11点,以此类推

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

有人能帮我编辑代码吗?

用这个公式计算最终刻度

let defualtFontSize = 17.0
let minFontSize = 11.0
let finalFontSize = CGFloat(minFontSize / defualtFontSize)
然后在这里使用finalFontSize

let defualtFontSize = 17.0
let minFontSize = 11.0
let finalFontSize = CGFloat(minFontSize / defualtFontSize)
let scale = min(max(1.0 - offset / 200.0, finalFontSize), 1.0)
完整代码

let defualtFontSize = 17.0
let minFontSize = 11.0
let finalFontSize = CGFloat(minFontSize / defualtFontSize)
  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的使用

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