2016-07-29 5 views
0

私は基本的に私の画面上でボタンを移動しているところにいくつかのコードがあります。ボタンが特定のビューにドロップされた場合、そのボタンをビューから削除する必要があります。viewControllerからそのサブクラスコードからボタンを削除しますか?

self.removeFromSuperview()は、コードが起動したときにボタンがどのビューに表示されているかに基づいてスーパービューの基になると考えたので、おそらく機能すると思いましたか?しかし、私はすべてを正確に理解していないと思います。

私のtouchesEnded func内でこの作業を行う方法はありますか?ボタンがビューにドロップされたかどうかを確認していますか、NSNotificationを他のビューに送信してそこで処理する必要がありますか?

私はちょうどatmを印刷していて、うまくいきました。削除は起こっていません。

答えて

0

ボタンポインタにremoveFromSuperviewと電話する必要があります。

myButton.removeFromSuperview()

また、あなたはメインスレッドでremoveFromSuperviewを呼び出していることを確認してください。

0

あなたの質問を正しく理解していれば、画面にUIButtonsがあり、ユーザーはそれらをドラッグできます。特定の場所にドラッグすると(これをごみ箱と呼ぶ)、削除する必要があります。

スーパービューから独自のView Controllerを削除したくないのは確かです。これは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() 
    } 


} 
関連する問題