Добавление ограничений программно отключило подправку внутри

#ios #objective-c #menu #constraints

#iOS #objective-c #меню #ограничения

Вопрос:

У меня есть боковое меню в моем приложении, и в его ViewController у меня есть: rootView> view> и вид прокрутки, содержащий MenuView. По некоторым причинам я был вынужден программно устанавливать ограничения для MenuView. Элементы MenuView отображаются корректно, но нажатие каждой кнопки элемента меню больше не работает. IBActions установлены правильно, и каждая кнопка подключена к своему IBAction.

Это часть моего кода:

 [self.menuScrollView addSubview:self.menuView];

self.menuView.translatesAutoresizingMaskIntoConstraints = NO;

NSLayoutConstraint *leading = [NSLayoutConstraint
                               constraintWithItem:self.menuView
                               attribute:NSLayoutAttributeLeading
                               relatedBy:NSLayoutRelationEqual
                               toItem:self.menuScrollView
                               attribute:NSLayoutAttributeLeading
                               multiplier:1.0f
                               constant:0.f];
  

Я сделал то же самое, что и для начала, для конца и верха. После этого я добавил все ограничения в представление menuScroll. Например:

 [self.menuScrollView addConstraint:leading];
  

Кто-нибудь может мне помочь, пожалуйста?

Редактировать:

Когда я устанавливаю translatesAutoresizingMaskIntoConstraints значение YES , кнопки нажимаются, но прокрутка не работает.

Комментарии:

1. Проверьте иерархию отладочного представления, создается ли представление поверх ваших кнопок. Как создаются представления?

2. Я проверил, и перед MenuView нет представления. Может ли это иметь отношение к ScrollView? Другими словами, может ли ScrollView обнаружить touchUpInside вместо моего ViewController?

3. Если ваша кнопка является subView и вы сделали IBAction (в основном, пока вы можете видеть кнопку, а поверх нее нет представления, и выходы установлены), нет причин, по которым действие кнопки не выполняется. Установлено ли для ‘IBAction’ значение ‘touchUpInside’ или что-то в этом действии? Ммм, просто убедитесь, что userIntercation это включено для кнопки? Иногда остаются глупые вещи.

4. Все взаимодействия с пользователем включены. Пожалуйста, посмотрите мою правку.

Ответ №1:

проверьте, доступно ли пользовательское взаимодействие для всех суперпросмотров. Ограничения не повлияют на взаимодействие с пользователем.

проверьте размер содержимого в режиме прокрутки также, если он меньше ширины меню, тогда взаимодействие с пользователем также не будет работать

Комментарии:

1. Я проверил все, что вы упомянули, и у меня все еще возникает та же проблема

2. в xcode есть опция, позволяющая увидеть инспектор пользовательского интерфейса после проверки иерархии представлений в этом

3. мой работал с настройкой superviews.isUserInteractionEnabled = true