Ios 获取UITapgestureRecognitors目标
我试图创建一个基本视图,每次点击它时,它的Ios 获取UITapgestureRecognitors目标,ios,swift,uiview,uitapgesturerecognizer,Ios,Swift,Uiview,Uitapgesturerecognizer,我试图创建一个基本视图,每次点击它时,它的backgroundColor在两种颜色之间切换。为了实现这一点,我创建了一个函数,该函数以要更改的视图和要切换的两种颜色作为参数 为了让它工作,我需要传递UIView,它应该随之改变。但是UIViews无法本机识别触摸,因此我“链接”(我不确定我是否理解这一点)了一个UIAppgestureRecognitizer,它会触发我的ViewController中的操作 现在我需要链接UIAPT手势UIView,以便我可以更改它。 我意识到我可以简单地在动作
backgroundColor
在两种颜色之间切换。为了实现这一点,我创建了一个函数,该函数以要更改的视图和要切换的两种颜色作为参数
为了让它工作,我需要传递UIView,它应该随之改变。但是UIViews无法本机识别触摸,因此我“链接”(我不确定我是否理解这一点)了一个UIAppgestureRecognitizer
,它会触发我的ViewController
中的操作
现在我需要链接UIAPT手势UIView
,以便我可以更改它。
我意识到我可以简单地在动作中输入相应的UIView,但我想让这个功能尽可能灵活(只是尝试从正确的礼仪开始)
以下是我不完整的功能:
@IBAction func colorViewTapped(_ sender: Any) {
print("tap")
//Heres the problem: I get an "Cannot convert value of type 'Any' to expected argument type 'UIView'
toggleViewBackgroundColor(view: sender, color1: UIColor.blue, color2: UIColor.brown)
}
将动作方法参数类型从
Any
更改为UIGestureRecognizer
,然后使用UIGestureRecognizer
的属性获取视图的引用
@IBAction func colorViewTapped(_ sender: UITapGestureRecognizer) {
print("tap")
toggleViewBackgroundColor(view: sender.view!, color1: UIColor.blue, color2: UIColor.brown)
}
.风景正是我想要的。非常感谢你!您可以将
sender
强制转换为uitappesturerecognizer
,然后使用其。