我有一個包含許多UITextfields的表單,比如名稱,密碼,電子郵件等等,在驗證過程中,我想顯示錯誤信息各自的文本字段。iPhone - 在UITextfield下面顯示錯誤信息的最佳方式是什麼
這樣做的最好方法是什麼?任何例子都會有幫助。
我有一個包含許多UITextfields的表單,比如名稱,密碼,電子郵件等等,在驗證過程中,我想顯示錯誤信息各自的文本字段。iPhone - 在UITextfield下面顯示錯誤信息的最佳方式是什麼
這樣做的最好方法是什麼?任何例子都會有幫助。
創建包含文本字段,標籤和驗證塊的新對象模型。 當文本框辭職第一響應者,調用該塊,以檢查它是否有效,如果沒有,顯示標籤
像這樣的事情
@protocol ValidationTextFieldDelegate
-(void) validationTextField:(ValidationTextField*)textField didResignWithResult:(BOOL)result;
@end
@interface ValidationTextField : NSObject <UITextFieldDelegate>
@property (nonatomic, strong) UITextField *textField;
@property (nonatomic, strong) UILabel *errorLabel;
@property (copy) void(^validationBlock)(BOOL);
@property (nonatomic, assign) id<ValidationTextFieldDelegate> delegate;
@end
@implementation ValidationTextField
-(void)textFieldDidEndEditing:(UITextField*)textField {
BOOL result = self.validationBlock();
self.errorLabel.hidden = result;
if (self.delegate) {
[self.delegate validationTextField:self didResignWithResult:result];
}
}
而在你的控制器
-(void) validationTextField:(ValidationTextField*)textField didResignWithResult:(BOOL)result {
if (!result) {
int yOffset = textField.errorLabel.bounds.size.height;
// Update here the frames of your other textfields, adding the yOffset to their frames
}
}
謝謝。我的疑問是,剩餘的下面的文本字段將如何根據添加的新標籤對齊。我想讓errorLabel初始隱藏並在表單提交後顯示出來。 – user694688
你有兩種解決方案:或者在每個文本框下方留出一個空白空間,或者在文本框已經退出後更新視圖 –
是否有任何我可以參考的實現。 – user694688
難怪你的名字是「Flash Thunder」.... – user694688
在文本框下面放置了一個標籤,並在那裏顯示錯誤。將標籤和文本字段包裝到一個自定義控件中以獲得更清晰的代碼 – Vladimir