Ich habe 2 benutzerdefinierte UIViews, die ich zu meinem UIViewController hinzufüge und dann mit NSLayoutConstraint ausrichtet. Nachdem ich die NSLayoutConstraint in der UIViewController-Ansicht angewendet habe, empfangen UIB-Schaltflächen in den benutzerdefinierten UIViews keine Berührungsereignisse mehr.UIButton in der Unteransicht, die keine Berührung nach NSLayoutConstraint erhält
- (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)]];
}
Beide DtNavigationBar und DtSwitch haben UIButton Ansichten, die noch an der richtigen Stelle erscheinen, aber reagiert nicht mehr zu berühren.
Wenn ich den addConstraints Teil entferne (und die Ansichten manuell platziere), dann funktionieren die Buttons gut.
wow danke ich hätte nie darüber nachgedacht – dowi