SWIFT Удаление 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 ответа

Распознаватель жестов имеет свойство представления - это будет касание вида.

Никогда не используйте теги для чего-либо.

Theres, вероятно, полдюжины способов, которыми я могу видеть, как это делается.

"Самый простой" - это, вероятно, получить местоположение крана

tap.locationInSubview

И затем проверка, если какое-либо из представлений содержит эту точку

uiViewObject.containtsPoint()

Если он содержит точку, удалите ее

Или вы можете добавить жесты к каждому представлению и, как предлагает jrturton, использовать источник представления касаний в качестве представления для удаления.

Другие вопросы по тегам