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

mmd*_*eas 7 iphone uitextfield uilabel

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

我已经考虑过将UILabels用于不可编辑的字段,并以编程方式删除它们并显示UITextFields.但是,这似乎将很多格式化为代码,我不想做(为了保持IB的优点).

我也考虑在我的笔尖中同时使用两个UILabel并且UITextField试图隐藏我不想要的那个.这看起来很不好看.

也许我最好还是有两个不同的观点?

对上述方法的任何评论或更好的方法都将非常感激.

Mat*_*uch 7

如果将UITextField的enabled属性设置为NO并将borderStyle更改为UITextBorderStyleNone,则文本字段看起来几乎就像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];
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)