我正在尝试在我的应用中隐藏我的UITextField。 我首先尝试使用UIButton来实现..
因此我做到了:
-(IBAction)hide:(id)sender {
_textField.hidden = !_textField.hidden;
}
这有效,但现在我想在编辑后自动完成,所以我写了这段代码:
-(void)textFieldDidEndEditing:(UITextField *)textField {
textField.hidden = YES;
}
在.h中我输入了这段代码:
-(void)textFieldDidEndEditing:(UITextField *)textField;
有谁能告诉我为什么这不起作用?
是否可以用动画隐藏它? 我试过这个不起作用:
[UIView animateWithDuration:2.0 animations:^
{ code.. }
]
谢谢你的帮助!
答案 0 :(得分:1)
您应该操纵文本字段的Alpha值来为其设置动画 例如:
textField.alpha = 1;
[UIView animateWithDuration:2.0 animations:^{
textField.alpha = 0;
}];
答案 1 :(得分:1)
UITextField的隐藏属性是BOOL,无法设置动画。尝试使用文本字段的 alpha 属性。它接受浮点值,其中0.0表示完全透明,1.0表示完全不透明。
所以你可以动画UITextField的alpha来隐藏它:
[UIView animateWithDuration: 2.0
animations:^{
textField.alpha = 0.0;
}];
正如beryllium所说,你还应该检查你的文本字段是否确实设置了它的委托,以便调用 -textFieldDidEndEditing:方法。
我假设您有一个视图控制器设置如下:
@interface ViewController : UIViewController<UITextFieldDelegate>
@property (weak, nonatomic) IBOutlet UITextField *textField;
@end
然后您应该将故事板中的UITextField的委托插座连接到视图控制器,如下所示:
或者您可以在视图控制器的 -viewDidLoad 方法中以编程方式执行此操作:
- (void) viewDidLoad
{
self.textField.delegate = self;
}