-1
私は、Catransitionを使ってアニメーションUILabelを作成しようとしています。これは、元のテキストをフェードアウトし、画面に触れると新しいテキストが消えることがあります。ここに私のコードがあり、アニメーションがない理由を理解できません。私を助けてください。私はXcode 7.3を使用しています。 @mattからの助けを借りて Catransitionが動作しないアニメーションUILabel
var subtitle:UILabel!
var winsize:CGSize!
override func viewDidLoad() {
super.viewDidLoad()
let animation = CATransition()
animation.type = kCATransitionFade
animation.duration = 0.75
animation.fillMode = kCAFillModeBoth
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
animation.delegate = self
self.subtitle = UILabel()
self.subtitle.text = "f"
self.subtitle.frame = CGRectMake(45, 30, 200, 50)
self.subtitle.font = UIFont.systemFontOfSize(25)
self.subtitle.textColor = UIColor.grayColor()
self.view.addSubview(self.subtitle)
self.subtitle.layer.addAnimation(animation, forKey: "animation")
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.subtitle.text="HighSchool"
}
は、次のコードは動作します。このよう
var subtitle:UILabel!
var winsize:CGSize!
override func viewDidLoad() {
super.viewDidLoad()
winsize = self.view.frame.size
self.subtitle = UILabel()
self.subtitle.text = "f"
self.subtitle.frame = CGRectMake(45, 30, 200, 50)
self.subtitle.font = UIFont.systemFontOfSize(25)
self.subtitle.textColor = UIColor.grayColor()
self.view.addSubview(self.subtitle)
UIView.transitionWithView(self.subtitle, duration: 0.5, options: UIViewAnimationOptions.TransitionCrossDissolve, animations: nil, completion: nil)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.subtitle.text="HighSchool"
}
まず感謝。私がしたいことは、テキストを変更すると元のテキストが消えて、新しいテキストがフェードインするように、UILabelを作成することです。http://stackoverflow.com/questions/3073520/animate-text-change -in-uilabel – user2232335
まあ、あなたのコードはそういうことをしません。あなたは単に 'self.subtitle.text =" HighSchool "'と言っています。そこにフェードアニメーションはありません。それは空から落ちないだろう。明示的にアニメーションに書き込む必要があります。 'transitionWithView:duration:options:animations:completion:'を呼び出し、テキストを変更します。これは3行のコードで、シンプルです。 – matt
それは動作します!どうもありがとうございます! – user2232335