У меня есть всплывающее окно UIView в качестве окна управления. Содержит ползунки и кнопки из каркаса AudioKitUI. У меня настроен жест касания, чтобы закрыть всплывающее окно, но, конечно, он также закрывает UIview, когда я нажимаю кнопку. Можно ли игнорировать жест касания при нажатии кнопки AKButton?
Все заключено в собственную структуру классов. Это код жеста вверху моей Overide Init.
override init(frame: CGRect) {
super.init(frame: frame)
self.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(animateout)))
и код моего AKButton.
// Dynamics on/off button
let dynamicsButton = AKButton(title: "") { button in
if boxDynamicStatus[boxBloqDoubleTapped] == false {
button.title = "FLOATING"
boxDynamicStatus[boxBloqDoubleTapped] = true
boxBloqArray[boxBloqDoubleTapped].physicsBody?.isDynamic = true
} else {
boxDynamicStatus[boxBloqDoubleTapped] = false
button.title = "FIXED"
boxBloqArray[boxBloqDoubleTapped].physicsBody?.isDynamic = false
}
}
// Set button text from box array
if boxDynamicStatus[boxBloqDoubleTapped] == false {
dynamicsButton.title = "FIXED"
} else {
dynamicsButton.title = "FLOATING"
}
Я не вижу этой проблемы с ползунками, я полагаю из-за движущегося жеста, а не из-за касания.
Все кнопки / ползунки удерживаются внутри контейнера
fileprivate let container: UIView = {
let v = UIView()
v.translatesAutoresizingMaskIntoConstraints = false
v.backgroundColor = UIColor.black.withAlphaComponent(0.3)
v.layer.cornerRadius = 5
return v
}()
можно ли запрограммировать жест, чтобы он не регистрировался в пределах границ контейнера?