Iphone 无法动态生成UITextField以代替UILabel?
我正在尝试动态生成UITextField来代替UILabel。 现在我想更新这些数据。 我在UILabel中显示数据库中的数据,并且有一个用于编辑的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
当我点击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之间)
这样,您就不必弄乱视图层次结构,也不必担心帧等问题 您需要发布创建文本字段的代码。