我想要一个带有渐变背景的UITextField,以使我的项目中的一个选项更具视觉吸引力。
我正在尝试将UITextField类子类化为覆盖initWithFrame,但它不起作用。我之前从未尝试过将UIControl子类化,所以我猜我错过了什么。
有人可以帮我一把吗?提前谢谢!
答案 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]];
}
因为这适合我,我认为它适合你 快乐编码:) 享受这一天!!