繁体   English   中英

嵌入在UIView中的UITextField不响应触摸事件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM