【问题标题】:Unable to Generate UITextField dynamically in place of UILabel?无法动态生成 UITextField 来代替 UILabel?
【发布时间】:2011-11-21 04:21:23
【问题描述】:

我正在尝试动态生成 UITextField 来代替 UILabel。 现在我想更新该数据。 我在 UILabel 中显示来自数据库的数据,并且有一个 UIButton 用于编辑。 当我单击那个 UIButton 时,应该生成 UITextField 来代替 UILabel,并且数据也应该显示在 UITextField 中。

【问题讨论】:

  • 您需要发布创建文本字段的代码。

标签: iphone objective-c ios cocoa-touch


【解决方案1】:

您可以做的是设计一个包含所有文本字段的视图,该视图在两种模式下工作,第一种是只读的(通过将 userInteraction 设置为 false ),第二种是编辑模式。这样可以避免使用标签。对于所有字段,这将只需要一个编辑按钮。如果你仍然想坚持你的方法,你可以隐藏标签,使用它们的框架在它们的位置创建文本字段,只要你在编辑模式下工作就可以让它们可见。不要忘记使用

[self.view bringSubviewToFront:TEXT_FIELD];

当您将它们添加到您的视图时。 e 使用我前面提到的方法管理编辑更容易,并且需要更少的努力。希望对你有帮助

【讨论】:

    【解决方案2】:

    您需要在 .h 文件中实现此文本字段,以便在完成编辑后访问它。然后,在您的按钮回调中:

    textField = [[UITextField alloc] initWithFrame:[yourUILabel frame]];
    [textField setText:yourUILabel.text];
    [self.view addSubView:textField];
    

    然后,将其替换回来:

    [yourUILabel setText:textField.text];
    [textField removeFromSuperView];
    

    【讨论】:

      【解决方案3】:

      您可以使用其他人在此处描述的方法,但听起来您只想要一个看起来像标签的 UITextField 并且您想控制它是否可编辑。

      • 根据您是否希望用户编辑 UITextField 将启用设置为 YES / NO
      • 设置 UITextField 的边框样式(通常在 UITextBorderStyleRoundedRect 和 UITextBorderStyleNone 之间)

      然后您可以按如下方式切换 enabled 和 borderStyle 值: - 在初始视图上:启用:否,边框样式:UITextBorderStyleNone - 点击按钮:启用:是,边框样式:UITextBorderStyleRoundedRect

      这样,您不必弄乱视图层次结构并担心框架等。

      【讨论】:

        猜你喜欢
        • 2013-08-18
        • 2017-04-12
        • 2010-12-17
        • 2015-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-22
        相关资源
        最近更新 更多