SWIFT删除子视图

时间:2015-01-06 23:04:29

标签: ios swift uiimageview uitapgesturerecognizer subviews

我正试图通过三次点击删除用户选择的子视图。 我遇到的问题是我只能按照创建子视图的顺序删除它。我玩过'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()

        }

2 个答案:

答案 0 :(得分:2)

手势识别器具有视图属性 - 将是点击视图。

永远不要使用标签。

答案 1 :(得分:0)

Theres可能有六种方法可以让我看到这一切。

最简单的'可能是获得点击的位置

tap.locationInSubview

然后检查是否有任何视图包含该点

uiViewObject.containtsPoint()

如果它包含点删除它

或者您可以为每个视图添加手势,并且正如jrturton所建议的那样,使用水龙头视图源作为要删除的视图。