Mam 2 niestandardowe UIViews, które dodajemy do mojego UIViewController, a następnie wyrównanie ich za pomocą NSLayoutConstraint. Po zastosowaniu NSLayoutConstraint w widoku UIViewController, a UIButtons w niestandardowym UIViews nie będą już otrzymywać zdarzeń dotyku.UIButton w subview nie otrzymuje dotyk po NSLayoutConstraint
- (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)]];
}
Zarówno DtNavigationBar i DtSwitch mają UIButton widoki, które wciąż pojawiają się w odpowiednim miejscu, ale nie reaguje na dotyk.
Po usunięciu części addConstraints (i ręcznym umieszczeniu widoków) przyciski działają poprawnie.
wow, dzięki, nigdy bym nie pomyślał o tym – dowi