2017-01-12 4 views
-1

私は少しの助けが必要です。誰かがフリスビーをどれくらい投げることができるかに基づいて、スライダを使ってその値を使用して、私がarrayToUse変数に渡している推奨事項の配列をコピーして、UIButtonを作成します。 VCはscrollViewを使用します。ユーザーは再びスライダを動かして別の距離を選択し、提出することができ、新しい距離に基づいて異なる配列をロードします。私の問題は、彼らが最初のものより少ない画像で新しい配列を選んだ場合、私は以前の画像を消す方法を知らないということです。ビューのデバッグ階層でトップレイヤーの下に表示されていますが、より長い配列が下にあるため、スクロールビューの最後にスクロールできる画像があるかのように表示されます。以前の配列を却下して、送信ボタンを押したときに新しい配列をロードする方法はありますか?私はこれを聞いていた場合新しい配列がスクロールビューに配置されるように選択されたときに、forループを介してscrollviewに配置されたUIButtonsを削除するにはどうすればよいですか?

for i in 0..<arrayToUse.count { 

    let imageView = UIButton() 
    imageView.setImage(arrayToUse[i].image, for: .normal) 
    imageView.contentMode = .scaleAspectFit 
    let xPosition = (self.view.frame.width - 60) * CGFloat(i) 

    imageView.frame = CGRect(x: xPosition + 30, y: view.frame.height - self.scrollView.frame.width + 30, width: self.scrollView.frame.width - 60 , height: self.scrollView.frame.width - 60) 

    scrollView.contentSize.width = (scrollView.frame.width * CGFloat(i + 1)) - (CGFloat(60 * i)) 
    scrollView.addSubview(imageView) 

    imageView.addTarget(self, action: #selector(discSelectionVC.buttonTapped(_:)), for: .touchUpInside) 
    imageView.tag = i 

} 

答えて

0

正しく私は、これはあなたが欲しいものだと思う:

for subview in scrollView.subviews { 

    if subview is UIButton { 
     // Perform logic here to determine if you want to remove the UIButton from the view 
     subview.removeFromSuperview() 
    } 
} 

あなたscrollViewでサブビューを通って、この意志ループそれはサブビューが、その後ベースUIButtonであることを見ればあなたが書いたロジックに、そのUIButtonを削除するかどうかを選択することができます。

+0

私が提供したコードに追加のロジックを追加しなかったのですが、これは私が望んでいたものとまったく同じです。ごめんなさい。 – user7411538

+0

ありがとう私はあなたのために働いてうれしいです! –

関連する問題