2016-07-29 2 views
0

У меня в основном есть код, в котором я перемещаю кнопки на моем экране, и если кнопка выпадает на определенное представление, мне нужно, чтобы эта кнопка удалялась из представления.Удаление кнопки из viewController из кода подкласса?

Я думал, что self.removeFromSuperview() может работать, потому что я полагал, что это может основываться на том, что супервизор основан на том, какой вид кнопки находится во время выключения этого кода? но я думаю, я не совсем понимаю все это.

Есть ли способ сделать эту работу внутри моей функции touchesEnded, где я проверяю, была ли кнопка удалена в представлении или мне нужно отправить NSNotification на другое мое представление и обрабатывать его там?

У меня только что-то напечатано atm, и это работает, удаление просто не происходит.

ответ

0

Вам нужно позвонить removeFromSuperview на указатель кнопки.

myButton.removeFromSuperview()

Кроме того, убедитесь, что вы звоните removeFromSuperview в главном потоке.

0

Если я правильно понимаю ваш вопрос, у вас есть UIButtons на экране, и пользователь может их перетащить. Если они перетаскивают их в определенное место (назовем это мусорным ящиком), вы хотите удалить его.

Вы, конечно, не хотите удалять свой собственный контроллер просмотра из супервизора, что и делает self.removeFromSuperView(). Вместо этого в touchesEnded попробуйте следующее:

override func touchesEnded(touches: Set, withEvent event: UIEvent) { 
    super.touchesEnded(touches, withEvent: event) 

    let touch: UITouch = touches.first as! UITouch 

    if touch.view.isKindOfClass(UIButton) { 
     touch.view.removeFromSuperview() 
    } 


} 
Смежные вопросы