Ios iPhone UITextField背景色

Ios iPhone UITextField背景色,ios,uitextfield,background-color,Ios,Uitextfield,Background Color,我无法使用borderStyle=UITextBorderStyleRoundedRect控制UITextField的背景色。使用此边框样式时,backgroundColor属性似乎只控制沿圆角矩形内边缘的一条非常窄的线。田野的其余部分仍然是白色的 但是,如果borderStyle设置为UIBorderStyle=UITextBorderStyleBezel,则UITextField的整个背景由其backgroundColor属性控制 这是一个功能吗?是否有一种方法可以使用borderStyle

我无法使用
borderStyle=UITextBorderStyleRoundedRect
控制
UITextField
的背景色。使用此边框样式时,
backgroundColor
属性似乎只控制沿圆角矩形内边缘的一条非常窄的线。田野的其余部分仍然是白色的

但是,如果
borderStyle
设置为
UIBorderStyle=UITextBorderStyleBezel
,则
UITextField
的整个背景由其
backgroundColor
属性控制


这是一个功能吗?是否有一种方法可以使用
borderStyle=UITextBorderStyleRoundedRect
控制
UITextField
backgroundColor

视图层次结构的转储显示
UITextField
有一个类型为
UITextFieldRoundedRectBackgroundView
的子视图,依次有12个
UIImageView
s

Erica Sadun的一篇文章显示了一个额外的
UILabel
,苹果显然在SDK的更高版本中删除了它

摆弄
UIImageView
s不会有太大变化

所以答案是:可能没有办法改变背景颜色。

您可以这样做:

textField.backgroundColor = [UIColor whiteColor];
在本例中,我使用白色,但您可以使用另一种颜色来使用
uiColor


希望它有助于

更改UITextField中的背景色。您首先需要在Interface Builder中或以编程方式使用不同样式的文本字段,将其转换为“圆角”样式(例如“无边框”样式)

然后,您可以轻松地使用更改背景颜色

textField.backgroundColor = backgroundColor;
其中textField是UITextField,backgroundColor是UIColor

作为进一步提示-如果您希望恢复圆角外观,首先需要

#import <QuartzCore/QuartzCore.h>
要使此功能正常工作

其他答案在圆角矩形样式的UITextField上没有阴影。在尝试了许多选项之后,我终于在UITextField上放置了一个UIView,具有相同的框架和自动调整大小的遮罩,将alpha设置为0.3,并将背景设置为蓝色。然后,我使用Peter Johnson答案中的片段从彩色叠加视图中剪切圆形边缘。此外,取消选中IB中的“已启用用户交互”复选框,以允许触摸事件级联到下面的UITextField。现在看起来很完美

副作用:你的文本也会被着色(不管它是黑色的)

#导入
colorizeOverlayView.layer.cornerRadius=6.0f;
colorizeOverlayView.layer.masksToBounds=是;

雅各布的答案是这里最好的答案,因为它允许您将阴影保留在RoundedRect文本框下面,所以雅各布的答案是+1

要详细说明他的解决方案,您需要这样做:

    UIView *textFieldShadeView=[[UIView alloc] init];
[textFieldShadeView setFrame:myTextFiled.frame];
textFieldShadeView.layer.cornerRadius=8.0f;
textFieldShadeView.layer.masksToBounds=YES;
textFieldShadeView.backgroundColor=[UIColor blueColor];
textFieldShadeView.alpha=0.3;
textFieldShadeView.userInteractionEnabled=NO;
[self.view addSubview:textFieldShadeView];
[textFieldShadeView release];

其中MyTextField是您尝试更改其背景色的圆角矩形文本字段。执行上述操作,您将获得Jacob的蓝色文本字段以及相应的阴影。

这比我们想象的要容易得多

...
textField.opaque = YES;
textField.backgroundColor=[UIColor blueColor];
textField.layer.cornerRadius=8.0f;
textField.layer.masksToBounds=YES
使用colorWithRed:green:blue:设置背景色时,颜色应为浮动,并且应为1的分数。例如:

[myTextField setBackgroundColor:[UIColor colorWithRed:255.0f/255.0f green:110.0f/255.0f blue:110.0f/255.0f alpha:1];
执行此操作时,所有文本字段样式都会正常工作


另请参见:

如果我是你,我会将Peter Johnson的回答标记为答案。如何通过将背景图像和边框样式添加到圆形矩形中使textfield完美工作?当我们将边框样式添加到圆形矩形中时,则background属性对该UITextField有效如何解决此问题?使用圆形矩形将产生问题中提到的海报的薄边颜色。请记住,当视图在表视图中多次绘制时,操纵视图的图层会显著降低性能。感谢您将所有这些放在一起。一种改进是将彩色视图添加为textfield的子视图(以原点0为框架),而不是容器视图的子视图。通过这种方式,您可以枚举容器的子视图,而不需要额外的垃圾,并且如果您在自动旋转期间进行任何自定义重新构造,那么所有内容都将一起运行。您可能还希望将添加的视图的自动调整大小掩码设置为UIViewAutoresizingFlexibleWidth,这是唯一重要的选项。这不是问题所在。使用边框时,UITextField不支持背景色。
...
textField.opaque = YES;
textField.backgroundColor=[UIColor blueColor];
textField.layer.cornerRadius=8.0f;
textField.layer.masksToBounds=YES
[myTextField setBackgroundColor:[UIColor colorWithRed:255.0f/255.0f green:110.0f/255.0f blue:110.0f/255.0f alpha:1];