这是一个简单的问题,
我有UIButton
目标操作
addTarget(self, action: "buttonPressed", forControlEvents: UIControlEvents.TouchUpInside)
func buttonPressed()
{
self.selected = !self.selected
}
此按钮是父UIView
containerView.addSubview(button)
我在容器中添加UITapGestureRecognizer
let tapG = UITapGestureRecognizer(target: self, action: "toggleView:")
containerView.addGestureRecognizer(tapG)
func toggleView(gest:UIGestureRecognizer) 我检查按钮的状态。
问题是在toggleView()
中,按钮的状态尚未设置... 是的!
修改
如果我这样做
print(button.selected)
我只在触摸事件之前获得按钮值,而不是新事件。
任何想法?
答案 0 :(得分:0)
尝试更改
func toggleView(gest:UIGestureRecognizer)
到
func toggleView(gest:UITapGestureRecognizer)
希望它有所帮助!
答案 1 :(得分:0)
我没有完全了解您要完成的任务,如果您想在按钮点击时执行某些操作,而在ContainerView中点击外部时执行其他操作则可以执行
-(void)toggleView:(UITapGestureRecognizer *) gest{
CGPoint tapLocation = [gest loactionInView:containerView];
if(CGRectContainsPoint(button.frame, tapLocation)){
// Tapped on Button
}
else{
// tapped outside in containerView
}
}
注意:由于我没有学习swift,我给了Objective-C片段。你应该能够轻松地将其翻译成快速:)