iOS6中的UITextField后台属性问题
我想创建iOS6中的UITextField后台属性问题,ios,objective-c,ios6,background,uitextfield,Ios,Objective C,Ios6,Background,Uitextfield,我想创建UITextField,它在普通视图中看起来像一个标签,在编辑模式下像一个带有自定义背景的文本字段。我在XIB中添加了一个“无边框样式”UITextField,并将插座设置为namenamextfield。我已经在编辑模式下为UITextField设置了背景,并在按钮事件的查看模式下为nil背景设置了背景,但是图像在iOS 6.x中第一次消失后没有出现,其他一切都正常工作。我已经在iOS 7.x中进行了测试,它的工作原理与预期一致。代码如下所示 - (IBAction)editButto
UITextField
,它在普通视图中看起来像一个标签,在编辑模式下像一个带有自定义背景的文本字段。我在XIB中添加了一个“无边框样式”UITextField
,并将插座设置为namenamextfield
。我已经在编辑模式下为UITextField
设置了背景,并在按钮事件的查看模式下为nil
背景设置了背景,但是图像在iOS 6.x中第一次消失后没有出现,其他一切都正常工作。我已经在iOS 7.x中进行了测试,它的工作原理与预期一致。代码如下所示
- (IBAction)editButtonTapped:(id)sender
{
editMode = !editMode;
if (editMode)
{
nameTextField.background = [UIImage imageNamed:@"textbg.png"];
nameTextField.enabled = YES;
}
else
{
nameTextField.background = nil;
nameTextField.enabled = NO;
}
}
测试用例:
- (IBAction)editButtonTapped:(id)sender
{
editMode = !editMode;
if (editMode)
{
nameTextField.background = [UIImage imageNamed:@"textbg.png"];
nameTextField.enabled = YES;
}
else
{
nameTextField.background = [UIImage imageNamed:@"blank_image.png"];
nameTextField.enabled = NO;
}
}
- (IBAction)editButtonTapped:(id)sender
{
editMode = !editMode;
if (editMode)
{
nameTextField.enabled = YES;
}
else
{
nameTextField.enabled = NO;
}
}
2)在XIB中设置背景(textbg.png)和禁用背景(blank_image.png);然后代码看起来像
- (IBAction)editButtonTapped:(id)sender
{
editMode = !editMode;
if (editMode)
{
nameTextField.background = [UIImage imageNamed:@"textbg.png"];
nameTextField.enabled = YES;
}
else
{
nameTextField.background = [UIImage imageNamed:@"blank_image.png"];
nameTextField.enabled = NO;
}
}
- (IBAction)editButtonTapped:(id)sender
{
editMode = !editMode;
if (editMode)
{
nameTextField.enabled = YES;
}
else
{
nameTextField.enabled = NO;
}
}
你可以分享文本框的屏幕截图吗?嗨,我已经选择了“无边框样式”文本框,并通过代码设置了背景(已发布)。我试着用XIB设置背景。如果我第一次按预期点击背景消失,但如果我再次点击,图像不会出现。此问题来自设备或模拟器?同时在设备和模拟器上出现。请尝试此操作,删除nameTextField.background=nil;并替换nameTextField.background=[UIImage ImageName:@”“;我们现在使用的是iOS 12,但我刚刚遇到了一个类似的行为,即设置
UITextField
的背景色效果很好。但是,隐藏视图并再次显示将产生意外结果(背景消失或alpha通道更改)。使用一个图像,而不是建议在这里修复它。