带有渐变背景的iOS UITextField

时间:2012-05-15 10:35:52

标签: ios xcode uitextfield subclass

我想要一个带有渐变背景的UITextField,以使我的项目中的一个选项更具视觉吸引力。

我正在尝试将UITextField类子类化为覆盖initWithFrame,但它不起作用。我之前从未尝试过将UIControl子类化,所以我猜我错过了什么。

有人可以帮我一把吗?提前谢谢!

4 个答案:

答案 0 :(得分:1)

这应该有效:

textView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"gradient.jpg"]];

但是您必须将控件更改为TextView。

答案 1 :(得分:0)

UITextField具有属性background,其类型为UIImage。因此,您可以在运行时绘制UIImage或加载准备好的图像并将其设置为UITextField的背景。通过这种方式,您可以实现文本字段的任何外观。

答案 2 :(得分:0)

您可以尝试以下答案:iPhone UITextField background color

使用CAGradientLayer添加渐变

答案 3 :(得分:0)

你只是接近它子类化是最好的想法,但不是覆盖initWithFrame只是在您的子类.m文件中使用如下代码

 - (CGRect)textRectForBounds:(CGRect)bounds
{
    return CGRectInset(bounds, 5, 0);
}

- (CGRect)editingRectForBounds:(CGRect)bounds
{
    return CGRectInset(bounds, 5, 0);   
}

- (void)drawRect:(CGRect)rect
{
    UIImage *textFieldBackground = [[UIImage imageNamed:@"text_field_teal.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(15.0, 5.0, 15.0, 5.0)];
    [textFieldBackground drawInRect:[self bounds]];
}

因为这适合我,我认为它适合你 快乐编码:) 享受这一天!!