Iphone 无法动态生成UITextField以代替UILabel?

Iphone 无法动态生成UITextField以代替UILabel?,iphone,objective-c,ios,cocoa-touch,Iphone,Objective C,Ios,Cocoa Touch,我正在尝试动态生成UITextField来代替UILabel。 现在我想更新这些数据。 我在UILabel中显示数据库中的数据,并且有一个用于编辑的UILabel按钮。 当我点击UIButton时,应该生成UIExtField来代替UILabel,并且数据应该显示在UIExtField中 您需要在.h文件中实现此文本字段,以便在完成aditing时访问它。然后,在按钮回调中: textField = [[UITextField alloc] initWithFrame:[yourUILabel

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

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

textField = [[UITextField alloc] initWithFrame:[yourUILabel frame]];
[textField setText:yourUILabel.text];
[self.view addSubView:textField];
然后,要将其替换回:

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

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

[self.view bringSubviewToFront:TEXT_FIELD];
当您将它们添加到视图中时。 E
用我前面提到的方法管理编辑更容易,而且需要更少的努力。希望它有帮助

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

  • 根据是否希望用户编辑UITextField,将enabled设置为YES/NO
  • 设置UITextField的borderStyle(通常在UITextBorderStyleRoundedRect和UITextBorderStyleNone之间)
然后,可以按如下方式切换“已启用”和“边框样式”值: -初始视图:启用:否,边框样式:UITextBorderStyleNone -点击按钮:启用:是,边框样式:UITextBorderStyleRoundedRect


这样,您就不必弄乱视图层次结构,也不必担心帧等问题

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