我有LoginViewController
两个文本字段和一个按钮。我使用了故事板,所以这些不是以编程方式创建的。他们在彼此之下。
这是.h文件
@interface LoginViewController : UIViewController <UITextFieldDelegate>
@property (weak, nonatomic) IBOutlet UITextField *pw1;
@property (weak, nonatomic) IBOutlet UITextField *pw2;
@property (weak, nonatomic) IBOutlet UIButton *loginBtn;
- (IBAction)loginBtnPressed:(id)sender;
- (IBAction)singleTapRecognized:(id)sender;
@end
仅在第pw2
一次运行时显示,当用户创建新密码并在pw2
. 否则它是隐藏的。在这种情况下,我将按钮向上移动以使按钮更靠近pw1
.
CGSize size = self.pw2.frame.size;
CGRect rect = self.loginBtn.frame;
CGRect newFrame = CGRectMake(rect.origin.x, rect.origin.y-size.height, rect.size.width,rect.size.height);
[self.loginBtn setFrame:newFrame];
到目前为止,一切都很好。到目前为止,所有工作都按预期进行。但现在.....
- 当我
pw1
留空时,程序会检查该字段,检测到它是空的,隐藏键盘并显示一个UIAlertView
. 这工作正常。 - 当我输入一些不正确的字符时,程序几乎相同,但将按钮向下移动到其原始位置。
- 当某些字符输入并点击视图中的任意位置时,行为相同
我发现,这只发生在我隐藏键盘时。否则,按钮将按预期保持在其“向上”位置。
这是我的键盘隐藏:
-(void) hideKeyboard {
if (self.pw1.isFirstResponder)
[self.pw1 resignFirstResponder];
else if (self.pw2.isFirstResponder)
[self.pw2 resignFirstResponder];
}
任何想法会发生什么?
对不起我的英语。英语不是我的母语。