2016-12-16 12 views
1

私はUIScrollViewUILabelです。私はUILabelのサイズを33.0から0.0に動的に変更したい、ユーザーがUIScrollViewを上/下にスクロールするとき0.0から33に変更したい。scrollView contentOffset yが変更されたときのフォントサイズの変更方法

どうすればいいですか?

@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)) 
     } 
    } 

私の現在のコードは約15ポイントにフォントサイズを許可し、ユーザーが再びスクロールダウンしたときにそれはまた33まで行かない0に変更されません。

答えて

2

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) 
} 
を変更する代わりに、フォントサイズを変換使用してみてください。
関連する問題