在iPhone上提供可编辑和不可编辑字段

在iPhone上提供可编辑和不可编辑字段,iphone,uitextfield,uilabel,Iphone,Uitextfield,Uilabel,我想以不可编辑的方式向我的应用程序的用户提供信息,但允许在按下(编辑按钮)按钮后进行编辑。有没有办法轻松创建从不可编辑到可编辑的转换 我考虑过对不可编辑的字段使用UILabels,并通过编程将其删除,然后显示UITextFields。然而,这似乎会将大量的格式设置到代码中,而我不希望这样做(以保持IB的优势) 我还考虑将UILabel和UITextField放在nib的同一个位置,并试图隐藏我不想要的。不过,这似乎有点骇人听闻 也许我最好有两种不同的观点 如果您对上述方法或更好的方法有任何意见,

我想以不可编辑的方式向我的应用程序的用户提供信息,但允许在按下(编辑按钮)按钮后进行编辑。有没有办法轻松创建从不可编辑到可编辑的转换

我考虑过对不可编辑的字段使用
UILabel
s,并通过编程将其删除,然后显示
UITextField
s。然而,这似乎会将大量的格式设置到代码中,而我不希望这样做(以保持IB的优势)

我还考虑将
UILabel
UITextField
放在nib的同一个位置,并试图隐藏我不想要的。不过,这似乎有点骇人听闻

也许我最好有两种不同的观点


如果您对上述方法或更好的方法有任何意见,我们将不胜感激。

如果您将UITextField的enabled属性设置为NO,并将borderStyle更改为UITextBorderStyleNone,则您的textfield看起来几乎像UILabel。 也许你想切换这两个值。。类似这样的内容:
编辑:如果你改变字体,它们看起来和UILabels一模一样

- (IBAction)toggleEdit:(id)sender {
    for (id subview in self.view.subviews) {
        if ([subview isKindOfClass:[UITextField class]]) {
            BOOL isEnabled = ((UITextField*)subview).enabled;
            ((UITextField*)subview).enabled = !isEnabled;
            if (isEnabled) {
                // Disable
                ((UITextField*)subview).borderStyle = UITextBorderStyleNone;
                ((UITextField*)subview).font = [UIFont systemFontOfSize:17.0];
            }
            else {
                // Enable
                ((UITextField*)subview).borderStyle = UITextBorderStyleRoundedRect;
                ((UITextField*)subview).font = [UIFont systemFontOfSize:12.0];
            }
        }
    }
}

正如fluchtpunkt回答的那样,你也可以这样做。否则,您可以提供一个具有相同帧大小的标签和一个文本字段。如果为“可编辑”,则可以隐藏显示文本字段的标签。对于编辑false,您可以在隐藏文本字段的同时显示标签。

太棒了,谢谢。我尝试了
textField.enabled
来实现这个效果,但我认为我做得太早了。与边框和字体以及工作完美。我还学习了self.view.subview!