Ste*_*Joy 21 background-color uitextfield ios
我无法控制的背景色UITextField用borderStyle= 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上放置了一个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样式都可以正常工作.
另请参阅:背景颜色未按预期工作