-1
Я пытаюсь сделать анимированный UILabel с помощью CATransition, который может исчезать из исходного текста и исчезать в новом тексте, когда я касаюсь экрана. Вот мой код, и я не могу понять, почему нет анимации. Пожалуйста, помогите мне. Я использую Xcode 7.3.Анимированная UILabel С CATransition Not Working
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"
}
С помощью @ Matt, следующий код работает.
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:' и измените текст. Это три строки кода, супер простые. – matt
Он работает !!! Спасибо огромное! – user2232335