淡出UITextField文本

时间:2013-06-10 13:57:25

标签: animation uitextfield

我希望能够在更改文本时将文本淡入uitextfield。我试过了

[UIView animateWithDuration:0.25 animations:{

    textview.text = @"";

}];

但这不起作用。如果我可以访问文本字段UILabel会更容易,但我没有任何内容!

哦,顺便说一下,我只希望文字褪色整个字段

任何帮助表示赞赏! - JomanJi

3 个答案:

答案 0 :(得分:4)

尝试这样的事情:

CATransition *transition = [CATransition animation];
transition.duration = 0.15;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionFade;

[textField.layer addAnimation:transition forKey:nil];

textField.text = @"some new text"; // or nil

它不仅适用于文本字段。我用UIImageView

答案 1 :(得分:1)

你需要设置" textview"的alpha。到你希望淡化它的值:

[UIView animateWithDuration:0.25 animations:{
     textview.alpha = 0;
}];

<强>更新

无法访问文本字段本身。 &#34; textColor&#34;财产是不可动画的,因此也是如此。最好的办法是将图形样式与标签分开,并将其放在标签后面的单独视图中。这样,您可以在不删除边框和BG颜色的情况下淡出标签,或者您可以设置标签样式。

答案 2 :(得分:0)

如果您需要大量的共享类和扩展,包括带有带有fadeIn()和fadeOut()函数的UIView扩展,请签出pod“ SwifterSwift”

http://swifterswift.com/docs/Extensions/UIView.html

拉入cocoapod:

pod 'SwifterSwift'

然后您可以使用类似的内容:

textview.fadeIn()