重现UITextField的边框

时间:2012-05-18 18:32:23

标签: ios uiview uitextfield calayer

我想淡入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时,这很好用。

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

2 个答案:

答案 0 :(得分:1)

borderView.userInteraction = NO;

在我的SIM卡4.3中查看。

答案 1 :(得分:0)

不要在文本字段中添加新视图,只需修改文本字段自己的图层:

#import <QuartzCore/QuartzCore.h>

textField.layer.borderWidth = 1;
textField.layer.borderColor = [UIColor grayColor].CGColor;
textField.layer.cornerRadius = 10;
// etc...