2010-10-16 167 views
7

我想以不可編輯的方式向我的應用的用戶顯示信息,但允許在按下按鈕(編輯按鈕)後進行編輯。有沒有方法可以輕鬆地創建從不可編輯到可編輯的轉換?在iPhone上提供可編輯和不可編輯的字段

我已考慮將UILabel s用於不可編輯的字段,並以編程方式將其刪除並顯示UITextField s。但是,這似乎將很多格式化成代碼,我不希望這樣做(保持IB的優勢)。

我也考慮過UILabelUITextField在我的筆尖同一個地方,並試圖隱藏我不想要的。這看起來很不方便。

也許我只是最好的兩個單獨的意見?

對上述方法或更好的方式做任何評論將非常感謝。

回答

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]; 
      } 
     } 
    } 
} 
+0

輝煌,謝謝。我爲此嘗試了'textField.enabled',但我認爲我做得太早了。邊框和字體也很完美。 *和*我瞭解了self.view.subviews! – mmdeas 2010-10-16 11:46:30

0

正如fluchtpunkt回答,你也可以這樣做。否則,您可以提供一個標籤和一個具有相同框架大小的文本字段。而在可編輯的真正你可以隱藏顯示文本字段的標籤whicle。而爲了編輯false,你可以在隱藏文本框的同時顯示標籤。