为什么UITextfield setBackground UIColor White转向透明?

时间:2016-02-01 09:22:54

标签: objective-c uitextfield uicolor

我正在编写一个应用程序,我希望将文本字段背景变为白色。

到目前为止,这是我的代码:

- (void)viewDidLoad
{
    UITextField *txtfield = UsernameTextField;
    [txtfield setBackgroundColor:[UIColor colorWithWhite:1 alpha:0.5]  ];

    txtfield.layer.borderColor = [UIColor blackColor].CGColor;
    txtfield.layer.borderWidth = 1;
    txtfield.borderStyle = UITextBorderStyleRoundedRect;

    [super viewDidLoad];

    // Do any additional setup after loading the view.
}

但是这段代码有这样的结果:

error

我尝试了这段代码,以增加alpha

[txtfield setBackgroundColor:[UIColor colorWithWhite:1 alpha:0.8]  ];

仍然相同

我也看到了这篇文章

iPhone UITextField background color

我试过

enter image description here

但它仍然相同

为什么textfield不会变成白色?

2 个答案:

答案 0 :(得分:1)

要更改背景颜色,将边框设置为无

非常重要
txtfield.borderStyle = UITextBorderStyleNone;

详细信息Changing background colour within a TextField in Interface Builder

iPhone UITextField background color

来自Apple Doc:

  

设置后,此属性引用的图像将替换borderStyle属性控制的标准外观。在文本字段的边框矩形部分中绘制背景图像。用于文本字段背景的图像应该能够伸展以适应。

答案 1 :(得分:1)

首先,你应该

  • [super viewDidLoad]应该是初始化父项初始化后- (void)viewDidLoad中的第一个语句。

第二

  • 请检查视图控制器上的视图顺序,将UsernameTextField置于所有视图的顶部,或者您可以在代码中调用[self.view bringSubviewToFront:txtfield]

第三

  • 只有将alpha设置为1.0,才能看到完整的白色背景。

最后你仍然没有解决它,然后你在xib / storyboard视图中做了一些改变。因此,重置只删除文本字段并重新添加。