[英]UITextField subview of UIImageView is not responding to touch events
[英]UITextField embedded in a UIView not responding to touch events
为什么将UITextField
嵌入到UIView
(本身嵌入在原始视图控制器的主UIView
)中时不响应触摸事件?
这是代码:
- (void)loadView
{
self.view = [UIView new];
UIView *positionalView = [[UIView alloc] initWithFrame:CGRectMake(20, 100, 280, 100)];
UITextField *usernameField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 280, 50)];
usernameField.placeholder = @"Full Name";
usernameField.delegate = self;
[usernameField addTarget:self action:@selector(textFieldChanged:) forControlEvents:UIControlEventEditingChanged];
[positionalView addSubview:usernameField];
UITextField *passwordField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 280, 50)];
passwordField.placeholder = @"Password";
passwordField.delegate = self;
[passwordField addTarget:self action:@selector(textFieldChanged:) forControlEvents:UIControlEventEditingChanged];
[positionalView addSubview:passwordField];
[self.view addSubview:positionalView];
}
如果我只是删除positionalView
并将文本字段直接添加到主self.view中,则很难理解上述行为,因为上述代码可以正常工作。
谁能解释一下?
您创建一个名为positionalView
的局部变量,但将文本字段添加到名为positionalView
的属性中。 这些不是相同的变量。
您需要bringSubviewToFront:
::
[positionalView addSubview:usernameField];
[positionalView bringSubviewToFront:usernameField];
相同的passwordField和positionalView
父UIView的大小为零,将UITextField的顶部,底部,左侧和右侧约束固定到父视图,以便父视图的大小为UITextField的大小,或者设置父UIView的框架使其具有大小那不是零。
检查Debug View Hierarchy调试工具进行检查!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.