我正试图通过三次点击删除用户选择的子视图。 我遇到的问题是我只能按照创建子视图的顺序删除它。我玩过'viewWithTag',但无法弄清楚如何让它做我想做的事。
我可以通过'tapGesture'从我点击的位置删除子视图来实现我想要的效果吗?
我是一个菜鸟(如孩子们所说),所以任何帮助都非常感谢! 谢谢!
@IBAction func unwindToParent(segue:UIStoryboardSegue){
var source = segue.sourceViewController as PropViewController
var propImage = UIImage(named: name as String!)
clipView = UIImageView(image: propImage!)
clipView.frame = CGRectMake(0, 0, 200.0, 200.0)
clipView.center = CGPoint (x: view.bounds.size.width/2, y: view.bounds.size.height/2)
clipView.contentMode = UIViewContentMode.ScaleAspectFit
clipView.userInteractionEnabled = true
clipView.multipleTouchEnabled = true
clipView.layer.cornerRadius = 10.0
setTag = tagCounter
tagCounter++
clipView.tag = setTag
addPinchGestureRecognizer(clipView)
addPanGestureRecognizer(clipView)
addRotationGestureRecognizer(clipView)
addTapGestureRecognizer(clipView)
view.addSubview(clipView)
view.bringSubviewToFront(clipView)
let recognizer = UITapGestureRecognizer(target: self, action:Selector("Trash:"))
recognizer.numberOfTapsRequired = 3
recognizer.delegate = self
clipView.addGestureRecognizer(recognizer)
}
func Trash(gesture: UITapGestureRecognizer){
clipView.viewWithTag(setTag)?.removeFromSuperview()
}
答案 0 :(得分:2)
手势识别器具有视图属性 - 将是点击视图。
永远不要使用标签。
答案 1 :(得分:0)
Theres可能有六种方法可以让我看到这一切。
最简单的'可能是获得点击的位置
tap.locationInSubview
然后检查是否有任何视图包含该点
uiViewObject.containtsPoint()
如果它包含点删除它
或者您可以为每个视图添加手势,并且正如jrturton所建议的那样,使用水龙头视图源作为要删除的视图。