###前提・実現したいこと
UILabelのFont Sizeをスムーズにアニメーションしながら拡大、縮小したいと考えています。
(例えば、フォントサイズ10→20→30を1秒間の間に変化するように)
###発生している問題・エラーメッセージ
UIView.animateを使用しても、スムーズには縮小されず、一瞬で大きくまたは小さくなってしまいます。
###該当のソースコード
UIView.animate(withDuration: 1.0, delay: 0.0, options: [.curveEaseIn], animations: {
self.uilabel.font = UIFont.systemFont(ofSize: 20)
}, completion: nil)
###試したこと
以下のextension を作っても見たのですが、ぼやっと変わるような感じにしかならず、思っているような徐々に拡大、縮小するようなアニメーションを実装できませんでした。お知恵があればよろしくお願いします。
extension UILabel {
func changeFontSize(_ fontsize: CGFloat, duration: TimeInterval = 0, option: UIViewAnimationOptions = [], completion:(()->())? = nil) {
var setting: UIViewAnimationOptions = option
setting.insert(UIViewAnimationOptions.transitionCrossDissolve)
UIView.transition(with: self, duration: duration, options: setting, animations: {
self.font = UIFont.systemFont(ofSize: fontsize)
}) { (finish) in
if finish { completion?() }
}
}
}
###補足情報(言語/FW/ツール等のバージョンなど)
Swift4 Xcode9
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。