2016-05-20 5 views
-1

私はプロジェクトで複数のボタンをプログラムで追加しました。私はviewDidLoadメソッドでNSTimerを使用して、5秒ごとにボタンを追加する関数を呼び出します。私の問題は、新しいボタンが古いものの上に作成されるように、以前に作成されたビューからボタンをクリアしたいということです。UIButtonを素早くプログラムで削除する

override func viewDidLoad() { 
     super.viewDidLoad() 

     timer = NSTimer.scheduledTimerWithTimeInterval(5, target: self, selector: Selector("subtractTime"), userInfo: nil, repeats: true) 

} 

func subtractTime() { 
    let button = UIButton(type: UIButtonType.RoundedRect) as UIButton 
    //button.removeFromSuperview 
    for var i = 0; i < size; i++ { 
     for var j = 0; j < size; j++ { 
      button.frame = CGRectMake(self.x, self.y, BoxWidthHeight, BoxWidthHeight) 
      button.setTitle("", forState: UIControlState.Normal) 
      button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside) 
      button.tag = tagcounter 
      self.view.addSubview(button) 
     } 
    } 
} 

私はbutton.removeFromSuperviewが仕事をする必要があることを読んだが、私はそれと画面上で同じままで削除されたすべてのボタンを取得いけません。

+0

どこのボタンを除去するために、あなたのコードはありますか? – luk2302

+0

ボタンを削除するために書いたことはありますか? –

答えて

2

これは役立つはず:

for locView in self.view.subviews { 
    if locView.isKindOfClass(UIButton) { 
     locView.removeFromSuperview() 
    } 
} 
+0

パーフェクト..これは動作します! – harshal

+0

こんにちは@harshalこれまたは任意の回答があなたの質問を解決した場合は、[それを受け入れる](http://meta.stackexchange.com/q/5234/179419)のチェックマークをクリックして検討してください。これは、あなたが解決策を見つけ出し、回答者とあなた自身の両方に評判を与えていることを広範なコミュニティに示します。これを行う義務はありません。 – 4oby

0

はこれを参照してください、

superview.subviews.forEach ({ 
    if $0 is UIButton { 
     $0.removeFromSuperview() 
    } 
}) 
関連する問題