刚开始进着手写项目,有好多东西不会,随手瞎写点随笔吧
今天想写一个简单的登陆界面,包括说明账户、密码提示信息的UILable,两个输入的UITextFiled,一个submit的UIButton和最下面的公司信息的UILable,就很简单。
在写代码的过程中选用了,将逻辑相似的组建加入同一个uiview中,便于管理与移动(虽然后来学长说直接加self里就好...)。
然后在实现时遇到了问题,发现UITextFiled没发选中没发打字,经过研究后发现时这样的:
当一些子控件加入到一个UIView进行管理时,只有不超出UIView的范围的部分有效。虽然超出部分可以显示(只要不超出屏幕范围),但无法被响应。
在这个空间中,蓝色部分代表UIView的有效范围,上面的TF可以被响应输入数据,但后面的清空按钮就无法被响应,下面的TF都可以被响应。
另,view重合好像不影响响应的问题(待验证);
_userView = [[UIView alloc]initWithFrame:CGRectMake(0,0,200,SCREEN_WIDTH)];
_userView.backgroundColor = [UIColor blueColor];
UILabel *accountA = [[UILabel alloc]initWithFrame:CGRectMake(0, 70, SCREEN_WIDTH-350, 44)];
accountA.text = @"账户";
//[_userView addSubview:accountA];
_userAccountTF = [[UITextField alloc] initWithFrame:CGRectMake(0, 70, SCREEN_WIDTH, 44)];
_userAccountTF.font = [UIFont systemFontOfSize:20];//字体大小相关
_userAccountTF.placeholder = NSLocalizedString(@"input your Account", nil); //显示提示文字 NSLocalizedString:可转换字符
//_userAccountTF.borderStyle = UITextBorderStyleLine; 设置输入框样式
_userAccountTF.clearButtonMode = UITextFieldViewModeWhileEditing; //显示清空按钮
_userAccountTF.keyboardType = UIKeyboardTypeAlphabet;
_userAccountTF.textAlignment = NSTextAlignmentCenter; //使输入的文本居中
[_userView addSubview:_userAccountTF];
//[self.view addSubview:_userAccountTF];
NSLog(@"addSubview:_userView");
[self.view addSubview:_userView];
//_psdView = [[UIView alloc]initWithFrame:CGRectMake(SCREEN_WIDTH/2-100,170,SCREEN_WIDTH-30-70,44)];
_psdView = [[UIView alloc]initWithFrame:CGRectMake(0,100,SCREEN_WIDTH,SCREEN_WIDTH)];
_psdView.backgroundColor = [UIColor blueColor];
UILabel *accountB = [[UILabel alloc]initWithFrame:CGRectMake(0, 70, SCREEN_WIDTH-350, 44)];
accountB.text = @"密码";
[_psdView addSubview:accountB];
_passwordTF = [[UITextField alloc]initWithFrame:CGRectMake(0, 170, SCREEN_WIDTH, 44)];
_passwordTF.font = [UIFont systemFontOfSize:20];
_passwordTF.placeholder = NSLocalizedString(@"input your Password", nil);
_passwordTF.clearButtonMode = UITextFieldViewModeWhileEditing;
_passwordTF.keyboardType = UIKeyboardTypeNumberPad;
_passwordTF.textAlignment = NSTextAlignmentCenter;
[_psdView addSubview:_passwordTF];
//[self.view addSubview:_passwordTF];
NSLog(@"addSubview:_psdView");
[self.view addSubview:_psdView];
以上为部分源码。