gpt4 book ai didi

ios - iOS6 中的 UITextField 背景属性问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:19:34 25 4
gpt4 key购买 nike

我想创建 UITextField,它在普通 View 中看起来像一个标签,在编辑模式下看起来像具有自定义背景的文本字段。我在 XIB 中添加了一个“无边框样式”UITextField 并将 socket 设置为名称 nameTextField。我在按钮事件的编辑模式下为 UITextField 设置了背景,在按钮事件的 View 模式下为 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;
}
}

测试用例:

  1. 点击编辑按钮,启用编辑和显示背景 -> 出现背景和字段按预期启用
  2. 再次点击“编辑”按钮,禁用编辑并隐藏背景 -> 背景按预期消失
  3. 再次点击编辑按钮,以启用编辑并显示背景 -> 字段已启用编辑但没有背景。

最佳答案

感谢您的意见。

我认为这是一个 iOS 6.x 错误;如果 UITextField 的背景属性在 viewDidAppear 或之后设置为 nil,则以后对背景属性的更改将不会被绘制。

此问题的解决方法是使用空白透明图像而不是 nil。图像可以以两种方式之一使用,

1)通过代码设置背景(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;
}
}

2)在XIB中设置背景(textbg.png)和禁用背景(blank_image.png);然后代码看起来像,

- (IBAction)editButtonTapped:(id)sender
{
editMode = !editMode;
if (editMode)
{
nameTextField.enabled = YES;
}
else
{
nameTextField.enabled = NO;
}
}

关于ios - iOS6 中的 UITextField 背景属性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26797761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com