菜鸟教程小白 发表于 2022-12-13 03:13:53

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


                                            <p><p>我想创建 <code>UITextField</code>,它在普通 View 中看起来像一个标签,在编辑模式下作为具有自定义背景的文本字段。我在 XIB 中添加了一个“无边框样式”<code>UITextField</code>,并设置了名称为 <code>nameTextField</code> 的 socket 。我在编辑模式下为 <code>UITextField</code> 设置了背景,在按钮事件的 View 模式下设置了 <code>nil</code> 背景,但是在 iOS 6.x 中第一次消失后图像没有出现,其他一切都按预期工作。我已经在 iOS 7.x 中进行了测试,它按预期工作。代码是这样的,</p>

<pre><code>- (IBAction)editButtonTapped:(id)sender
{
    editMode = !editMode;
    if (editMode)
    {
      nameTextField.background = ;
      nameTextField.enabled = YES;
    }
    else
    {
      nameTextField.background = nil;
      nameTextField.enabled = NO;
    }
}
</code></pre>

<p><strong>测试用例:</strong> </p>

<ol>
<li>点击编辑按钮,启用编辑和显示背景 -> 背景出现和字段
已按预期启用</li>
<li>再次点击编辑按钮,禁用编辑并隐藏背景 -> 背景按预期消失</li>
<li>再次点击编辑按钮,启用编辑并显示背景 -> <strong>字段已启用编辑但没有背景。</strong></li>
</ol></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>感谢您的评论。</p>

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

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

<p>1 ) 通过代码设置背景(textbg.png和blank_image.png);那么代码将如下所示,</p>

<pre><code>- (IBAction)editButtonTapped:(id)sender
{
    editMode = !editMode;
    if (editMode)
    {
      nameTextField.background = ;
      nameTextField.enabled = YES;
    }
    else
    {
      nameTextField.background = ;
      nameTextField.enabled = NO;
    }
}
</code></pre>

<p>2 ) 在XIB中设置背景(textbg.png)和禁用背景(blank_image.png);那么代码将如下所示,</p>

<pre><code>- (IBAction)editButtonTapped:(id)sender
{
    editMode = !editMode;
    if (editMode)
    {
      nameTextField.enabled = YES;
    }
    else
    {
      nameTextField.enabled = NO;
    }
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - iOS6中的UITextField背景属性问题,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/26797761/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/26797761/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - iOS6中的UITextField背景属性问题