我想创建 UITextField
,它在普通 View 中看起来像一个标签,在编辑模式下作为具有自定义背景的文本字段。我在 XIB 中添加了一个“无边框样式”UITextField
,并设置了名称为 nameTextField
的 socket 。我在编辑模式下为 UITextField
设置了背景,在按钮事件的 View 模式下设置了 nil
背景,但是在 iOS 6.x 中第一次消失后图像没有出现,其他一切都按预期工作。我已经在 iOS 7.x 中进行了测试,它按预期工作。代码是这样的,
- (IBAction)editButtonTappedid)sender
{
editMode = !editMode;
if (editMode)
{
nameTextField.background = [UIImage imageNamed"textbg.png"];
nameTextField.enabled = YES;
}
else
{
nameTextField.background = nil;
nameTextField.enabled = NO;
}
}
测试用例:
感谢您的评论。
我认为这是一个 iOS 6.x 的错误;如果 UITextField 的 background 属性在 viewDidAppear 或之后设置为 nil,以后对 background 属性的更改将不会被绘制。
解决此问题的方法是使用空白透明图像而不是 nil。 该图像可以以两种方式之一使用,
1 ) 通过代码设置背景(textbg.png和blank_image.png);那么代码将如下所示,
- (IBAction)editButtonTappedid)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;
}
}
2 ) 在XIB中设置背景(textbg.png)和禁用背景(blank_image.png);那么代码将如下所示,
- (IBAction)editButtonTappedid)sender
{
editMode = !editMode;
if (editMode)
{
nameTextField.enabled = YES;
}
else
{
nameTextField.enabled = NO;
}
}
关于ios - iOS6中的UITextField背景属性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26797761/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |