iPhone UITextField背景色

Ste*_*Joy 21 background-color uitextfield ios

我无法控制的背景色UITextFieldborderStyle= UITextBorderStyleRoundedRect.使用这种边框样式,该backgroundColor属性似乎只能控制沿圆角矩形内边缘的非常窄的线条.该区域的其余部分仍为白色.

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

这是一个功能吗?有没有办法控制backgroundColora UITextField的a borderStyle=UITextBorderStyleRoundedRect

Pet*_*son 31

要更改UITextField中的背景颜色,首先需要在Interface Builder中或以编程方式将不同样式的文本字段用于"舍入"样式(例如"无边框"样式).

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

textField.backgroundColor = backgroundColor;
Run Code Online (Sandbox Code Playgroud)

其中textField是您的UITextField,而backgroundColor是UIColor.

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

#import <QuartzCore/QuartzCore.h>
Run Code Online (Sandbox Code Playgroud)

然后设置

textField.layer.cornerRadius=8.0f;
textField.layer.masksToBounds=YES
Run Code Online (Sandbox Code Playgroud)

使这个功能工作


Jac*_*ngs 14

使用叠加颜色的UITextField

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

副作用:你的文字也会着色(如果是黑色则无关紧要)

#import <QuartzCore/QuartzCore.h>

colorizeOverlayView.layer.cornerRadius = 6.0f;
colorizeOverlayView.layer.masksToBounds = YES;
Run Code Online (Sandbox Code Playgroud)


小智 6

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

使用colorWithRed:green:blue:设置backgroundColor时,颜色应该是浮点数,并且应该是1的一小部分.例如:

[myTextField setBackgroundColor:[UIColor colorWithRed:255.0f/255.0f green:110.0f/255.0f blue:110.0f/255.0f alpha:1];
Run Code Online (Sandbox Code Playgroud)

执行此操作时,所有TextField样式都可以正常工作.

另请参阅:背景颜色未按预期工作

  • 这不是问题。使用边框时 UITextField 不支持背景颜色。 (2认同)

Can*_*der 4

视图层次结构的转储显示UITextField具有一个类型为 的子视图UITextFieldRoundedRectBackgroundView,该子视图又具有 12 UIImageViews。

Erica Sadun 的一篇较早的文章UILabel显示了一个附加的,Apple 显然在 SDK 的更高版本中删除了它。

摆弄UIImageViews 并没有多大改变。

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