Swift UI 无法检测到 ScrollView 中的组件
Swift UI Component in ScrollView can't be detected
我在 ScrollView 中有一个 UIView。但是这个UIVIew中的每个组件甚至它本身都无法检测到手势。
我必须使用文本字段来输入昵称,还必须点击 UIView 以查看 able/disable male/female 性别状态。
这是我的代码。即使我已经尝试了在互联网上找到的其他解决方案,它仍然无法正常工作。
let tapViewMale = UITapGestureRecognizer()
tapViewMale.addTarget(self, action:#selector(viewMaleClicked))
self.viewMain!.addGestureRecognizer(tapViewMale)
let tapViewFemale = UITapGestureRecognizer()#imageLiteral(resourceName: "Screen Shot 2017-11-09 at 12.15.55 PM.png")
tapViewFemale.addTarget(self, action:#selector(viewFemaleClicked(_:)))
self.checkboxFemale.isUserInteractionEnabled = true
self.checkboxFemale.addGestureRecognizer(tapViewFemale)
}
@objc func viewMaleClicked(tapGestureRecognizer: UITapGestureRecognizer) {
print ("viewMaleClicked")
if gender == "" || gender == "F" {
print ("1")
checkboxMale.image = UIImage(named: "checked_checkbox")
checkboxFemale.image = UIImage(named: "unchecked_checkbox")
gender = "M"
} else {
print ("2")
checkboxMale.image = UIImage(named: "unchecked_checkbox")
gender = ""
}
}
@objc func viewFemaleClicked(_ sender:AnyObject) {
print ("viewFemaleClicked")
if gender == "" || gender == "M" {
print ("1")
checkboxFemale.image = UIImage(named: "checked_checkbox")
checkboxMale.image = UIImage(named: "unchecked_checkbox")
gender = "F"
} else {
print ("2")
checkboxFemale.image = UIImage(named: "unchecked_checkbox")
gender = ""
}
}
这是屏幕截图。
我认为使用透明按钮而不是在 scrollView 中给 uiview 手势的简单方法。
@IBAction func onClickBtnMale(_ sender: Any)
{ if gender == "" || gender == "F" {
print ("1")
checkboxMale.image = UIImage(named: "checked_checkbox")
checkboxFemale.image = UIImage(named: "unchecked_checkbox")
gender = "M"
} else {
print ("2")
checkboxMale.image = UIImage(named: "unchecked_checkbox")
gender = ""
}
}
- 您可以使 uibutton 的宽度与您的视图相等,并将其用于点击。
我在 ScrollView 中有一个 UIView。但是这个UIVIew中的每个组件甚至它本身都无法检测到手势。
我必须使用文本字段来输入昵称,还必须点击 UIView 以查看 able/disable male/female 性别状态。
这是我的代码。即使我已经尝试了在互联网上找到的其他解决方案,它仍然无法正常工作。
let tapViewMale = UITapGestureRecognizer()
tapViewMale.addTarget(self, action:#selector(viewMaleClicked))
self.viewMain!.addGestureRecognizer(tapViewMale)
let tapViewFemale = UITapGestureRecognizer()#imageLiteral(resourceName: "Screen Shot 2017-11-09 at 12.15.55 PM.png")
tapViewFemale.addTarget(self, action:#selector(viewFemaleClicked(_:)))
self.checkboxFemale.isUserInteractionEnabled = true
self.checkboxFemale.addGestureRecognizer(tapViewFemale)
}
@objc func viewMaleClicked(tapGestureRecognizer: UITapGestureRecognizer) {
print ("viewMaleClicked")
if gender == "" || gender == "F" {
print ("1")
checkboxMale.image = UIImage(named: "checked_checkbox")
checkboxFemale.image = UIImage(named: "unchecked_checkbox")
gender = "M"
} else {
print ("2")
checkboxMale.image = UIImage(named: "unchecked_checkbox")
gender = ""
}
}
@objc func viewFemaleClicked(_ sender:AnyObject) {
print ("viewFemaleClicked")
if gender == "" || gender == "M" {
print ("1")
checkboxFemale.image = UIImage(named: "checked_checkbox")
checkboxMale.image = UIImage(named: "unchecked_checkbox")
gender = "F"
} else {
print ("2")
checkboxFemale.image = UIImage(named: "unchecked_checkbox")
gender = ""
}
}
这是屏幕截图。
我认为使用透明按钮而不是在 scrollView 中给 uiview 手势的简单方法。
@IBAction func onClickBtnMale(_ sender: Any)
{ if gender == "" || gender == "F" {
print ("1")
checkboxMale.image = UIImage(named: "checked_checkbox")
checkboxFemale.image = UIImage(named: "unchecked_checkbox")
gender = "M"
} else {
print ("2")
checkboxMale.image = UIImage(named: "unchecked_checkbox")
gender = ""
}
}
- 您可以使 uibutton 的宽度与您的视图相等,并将其用于点击。