我有 2 个自定义 UIView,我将它们添加到我的 UIViewController,然后使用 NSLayoutConstraint 对齐它们。在 UIViewController 视图上应用 NSLayoutConstraint 后,自定义 UIViews 中的 UIButtons 不再接收触摸事件。
- (void)viewDidLoad
{
[super viewDidLoad];
navigationBar = [[DtNavigationBar alloc] initWithFrame:CGRectMake(0,0,320,45)];
[navigationBar setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.view addSubview:navigationBar];
switchBar = [[DtSwitch alloc] initWithFrame:CGRectMake(0,0,320,44)];
[switchBar setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.view addSubview:switchBar];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[navigationBar(45)]-0-[switchBar(44)]-(>=100)-|"
options:NSLayoutFormatAlignAllLeft metrics:nil
views:NSDictionaryOfVariableBindings(switchBar, navigationBar)]];
}
DtNavigationBar 和 DtSwitch 都有 UIButton 视图,它们仍然显示在正确的位置,但不再响应触摸。
如果我删除 addConstraints 部分(并手动放置视图),那么按钮可以正常工作。