Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.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 当scrollView内容更改时,如何动态更改字体大小?_Ios_Swift_Uiscrollview_Swift3 - Fatal编程技术网

Ios 当scrollView内容更改时,如何动态更改字体大小?

Ios 当scrollView内容更改时,如何动态更改字体大小?,ios,swift,uiscrollview,swift3,Ios,Swift,Uiscrollview,Swift3,我有UIScrollView和UILabel。当用户上下滚动myUIScrollView时,我想动态地将UILabel大小从33.0更改为0.0,从0.0更改为33 我该怎么做 @IBOutlet weak var myLabel : UILabel! override func viewDidLoad() { super.viewDidLoad() scrollView.delegate = self } func scrollViewDidScroll(_ scroll

我有
UIScrollView
UILabel
。当用户上下滚动my
UIScrollView
时,我想动态地将
UILabel
大小从33.0更改为0.0,从0.0更改为33

我该怎么做

@IBOutlet weak var myLabel : UILabel!

override func viewDidLoad() {
    super.viewDidLoad()

    scrollView.delegate = self
}

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    let offset = scrollView.contentOffset.y
    let fontpointmath = (myLabel.font.pointSize / (offset / 100) - 15)

    if offset > 0 {
        if fontpointmath < 0 {
            myLabel.font =  UIFont(name: "Arial", size: 0.0)
        }else if fontpointmath > 33 {
            myLabel.font =  UIFont(name: "Arial", size: 33.0)
        }else{
            myLabel.font =  UIFont(name: "Arial", size: CGFloat(fontpointmath))
        }
    }
@IBOutlet弱var myLabel:UILabel!
重写func viewDidLoad(){
super.viewDidLoad()
scrollView.delegate=self
}
func scrollViewDidScroll(scrollView:UIScrollView){
让offset=scrollView.contentOffset.y
让fontpointmath=(myLabel.font.pointSize/(偏移量/100)-15)
如果偏移量>0{
如果fontpointmath<0{
myLabel.font=UIFont(名称:“Arial”,大小:0.0)
}否则,如果fontpointmath>33{
myLabel.font=UIFont(名称:“Arial”,大小:33.0)
}否则{
myLabel.font=UIFont(名称:“Arial”,大小:CGFloat(fontpointmath))
}
}

我当前的代码只允许字体大小为15点左右,不允许更改为0。当用户再次向下滚动时,字体大小也不会增加到33。

请尝试使用“转换”而不是更改字体大小

override func viewDidLoad() {
    super.viewDidLoad()
    scrollView.delegate = self
    myLabel.font = UIFont(name: "Arial", size: 33.0)
}

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到33。