0

我想淡入 UITextField 的边框,所以我自己在 UIView 中重新创建它,使用它的图层:

    borderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, textfield.frame.size.width, textfield.frame.size.height)];
    [borderView.layer setBorderWidth:1.0];
    [borderView.layer setBorderColor:[UIColor grayColor].CGColor];
    [borderView.layer setMasksToBounds:YES];
    [borderView.layer setCornerRadius:10.0];
    [borderView.layer setShadowColor:[UIColor blackColor].CGColor];
    [borderView.layer setShadowOffset:CGSizeMake(0, 3)];
    [borderView.layer setShadowOpacity:0.8];
    borderView.alpha = 0.0;

然后我直接将它添加到 UITextField :

    [textField addSubview: borderView];
    [textField sendSubviewToBack: borderView];

然而,尽管 sendSubviewToBack: 调用,文本字段在被触摸时拒绝成为第一响应者。

当我将 ImageView 添加为同级视图而不是 UIView 时,这很好用。

如何使文本字段接收输入?

4

2 回答 2

1
borderView.userInteraction = NO;

在我的 sim 4.3 中检查了它。

于 2012-05-20T07:46:11.703 回答
0

无需向文本字段添加新视图,只需修改文本字段自己的图层:

#import <QuartzCore/QuartzCore.h>

textField.layer.borderWidth = 1;
textField.layer.borderColor = [UIColor grayColor].CGColor;
textField.layer.cornerRadius = 10;
// etc...
于 2012-05-18T19:23:25.807 回答