У меня есть 2 пользовательских UIViews, которые я добавляю в свой UIViewController, а затем выравнивая их с помощью NSLayoutConstraint. После того, как я применил NSLayoutConstraint в представлении UIViewController, UIButtons в пользовательских UIViews больше не получает события касания.UIButton в subview не получает прикосновения после 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)]];
}
Оба DtNavigationBar и DtSwitch имеют вид UIButton, что до сих пор показывают в нужном месте, но больше не реагирует на прикосновения.
Если я удалю часть addConstraints (и вручную разместите виды), то кнопки будут работать нормально.
wow thanks Я никогда бы не подумал об этом – dowi