Во многих книгах и руководствах по iOS они демонстрируют, как в конструкторе интерфейсов вы можете превратить UIView в UIControl и заставить его наследовать новые функциональные возможности более высокого уровня, чтобы реагировать на нажатия и вести себя, например, как кнопки.Это делается просто путем изменения типа класса в конструкторе интерфейса выбранного UIView.
Это часто делается для того, чтобы закрыть клавиатуру, когда кто-то касается «фона» или основного вида данного контроллера представления.Как только класс UIView изменен на UIControl, вы просто назначаете connect new IBAction, например, когда происходит событие TouchUpInside.
Теперь я понимаю эту концепцию, но она выглядит как странный взлом Xcode.Причина в том, что я не понимаю, как я мог бы сделать то же самое программно.Позвольте мне объяснить: если я создаю экземпляр UIView в коде, и я хочу, чтобы он вел себя как UIControl, как бы я сказал этому экземпляру UIView, что я хочу, чтобы он наследовал от UIControl.Теперь имейте в виду, что на самом деле я не хочу создавать подкласс UIControl, потому что это перепрыгнет через большее количество обручей, и я не думаю, что именно это делает Interface Builder, когда вы меняете этот тип класса, или это так?Кроме того, имейте в виду, что UIControl должен быть абстрактным классом, а не использоваться напрямую, иначе я, вероятно, просто сделал бы это.
В конечном счете, мой вопрос, есть ли эквивалентный способ выполнить то же самое в чистом видекод, и чтобы UIView стал UIControl таким образом, чтобы я мог назначать ему события более высокого уровня?
Надеюсь, это имеет смысл, если нет, я могу уточнить.