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, использовать источник представления касаний в качестве представления для удаления.