是否可以在 iOS 6 中创建一个只有底部边框的 UITextField?

Is it possible to create a UITextField in iOS 6 with only a bottom border?

我想在 iOS 6 中自定义一个 UITextField,它看起来像一个只有底部的透明文本字段 border.I 之前在 Whosebug 中找到了一张图片,但我没有没有 10 个声誉我不能 post 图片,但我正在 posting 下面的 link。

Text field with bottom border only in ios6

有多种方法可以做到这一点:

  1. 创建一个 seperatorView 并将其子视图添加到 UITextfield,y 轴作为文本字段的高度。

    UITextfield *namefield = [[UITextfield alloc] initwithframe:CGRectMake(20,40,70,40)  ];
    UIView *seperator=[UIView new];
    seperator.backgroundColor = [UIColor grayColor];
    seperator.frame =CGRectMake(namefield.frame.origin.x, namefield frame.origin.y+namefield.frame.size.height-1, namefield.frame.size.width,1);
    [namefield addSubView:seperator];
    
  2. 通过使用 CoreAnimation Class

    CALayer *bottomBorder = [CALayer layer];   
    CGFloat borderWidth = 1;
    bottomBorder.borderColor = [UIColor grayColor].CGColor; 
    bottomBorder.frame = CGRectMake(0, textField.frame.size.height - borderWidth, textField.frame.size.width, textField.frame.size.height);   
    bottomBorder.borderWidth = borderWidth;  
    [textField.layer addSublayer:border];
    textField.layer.masksToBounds = YES;
    
  3. 通过为 UITextField 创建自定义 class 并覆盖 drawRect 方法。

  4. 使用图像并将其作为背景色添加到 UITextfield。