#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