Программный UIControl как подпредставление IB UIView не получает взаимодействия - PullRequest
0 голосов
/ 27 июня 2018

У меня возникли некоторые проблемы с правильными частями иерархии представления в моем приложении для iPhone, получающими события касания, которыми они должны быть. Весь код Swift в iOS 11.

У меня есть подкласс UIControl, который переопределяет beginTracking () и endTracking (). Первоначально я программно создал UIView, а затем добавил экземпляр моего подкласса UIControl в качестве подпредставления. Код в основном сводился к:

myView = UIView()
view.addSubview(myView)
// add autolayout constraints for the view
myControl = TheControl(frame: theFrame)
myView.addSubview(myControl)
// add autolayout constraints for the control

Это работало нормально, но я хотел, чтобы myView был в Интерфейсном Разработчике, чтобы сделать процесс автоматического размещения немного проще. Поэтому я избавился от строк 'myView = UIView ()' и 'view.addSubview (myView)', создал представление в IB и подключил его к розетке в контроллере представления. Остальная часть кода осталась прежней. Поэтому я программно создаю myControl и добавляю его как подпредставление myView. Теперь, когда я это сделал, myControl больше не получает сенсорные события.

Я не могу понять, что происходит по-другому, делая это в Интерфейсном Разработчике и в коде. Я включил и выключил «Взаимодействие с пользователем включено» на myView в IB, и, насколько я могу судить, это не имеет никакого значения.

Что я здесь не так делаю?

...