UITapGestureRecouncer не запускается в пользовательском UIView в iOSIOS

Программируем под IOS
Ответить
Anonymous
 UITapGestureRecouncer не запускается в пользовательском UIView в iOS

Сообщение Anonymous »

В настоящее время я столкнулся с проблемой с UITapGestureRecouncer в моем специальном классе UIView в приложении iOS, разработанном на Swift. Хотя я настроил распознаватель жестов как обычно, похоже, он вообще не реагирует на нажатия. Ниже приведена соответствующая часть моей настройки кода:
ViewController

Код: Выделить всё

class myViewController : ViewController {

init() {
super.init(nibName: nil, bundle: nil)

self.view.addSubview(self.myView)

self.myView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
self.myView.centerYAnchor.constraint(equalTo: self.view.centerYAnchor).isActive = true
}

required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

lazy var myView : MyCustomView = {
let view = MyCustomView(frame: CGRect(x: 0, y: 0, width: 476.0, height: 398.0))
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
}
Пользовательский вид

Код: Выделить всё

class MyCustomView : UIView {

override init(frame: CGRect) {
super.init(frame: frame)

self.widthAnchor.constraint(equalToConstant: frame.width).isActive = true
self.heightAnchor.constraint(equalToConstant: frame.height).isActive = true

self.mView.topAnchor.constraint(equalTo: self.topAnchor, constant: 10).isActive = true
self.mView.trailingAnchor.constraint(equalTo: self.trailingAnchor, constant: -20).isActive = true
}

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}

private lazy var mView: UIView = {
let view = UIView()
view.translatesAutoresizingMaskIntoConstraints = false
view.backgroundColor = UIColor.init(hexString: "#EDEEEF")
view.isUserInteractionEnabled = true

let gesture = UITapGestureRecognizer(target: self, action:  #selector(tappedDropDown))
view.addGestureRecognizer(gesture)

return view
}()

@objc func tappedDropDown(sender : UITapGestureRecognizer){
print("Tapped")
}
}
Это тоже похоже на это, но я не могу понять, что происходит в моем случае. Я уже проверил, что для isUserInteractionEnabled установлено значение true и нет никаких представлений, накладывающих mView, которые могли бы перехватывать касания.

Подробнее здесь: https://stackoverflow.com/questions/689 ... iew-in-ios
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»