UIViewController に追加し、NSLayoutConstraint を使用してそれらを整列させる 2 つのカスタム UIView があります。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 部分を削除すると(そしてビューを手動で配置すると)、ボタンは正常に機能します。