2017-05-26 12 views
2

iOS swift 3.0でアプリケーションを構築しています。私は動的UIViewを作成しています。私はランダムにカスタムビューを削除する必要がありますが、現在のところ、私は2つのビューの間にギャップを取得し、私はそれらを削除するようにポジションを再配置することができません、下のコードで画像で示すように、削除後の再配置に関する問題UIView

class ViewController: UIViewController { 
var myView: subView! 
var y : CGFloat! 
var tag : Int = 0 
@IBOutlet weak var addButton: UIButton! 

override func viewDidLoad() { 
    y = 1 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
} 
func cancelbutton(_ sender: UIButton) 
{ 
      let selectViewTagValue : Int = sender.tag /// save the selected view tag value 
      for object in self.view.subviews { 

      if ((object is subView) && object.tag == selectViewTagValue) 
      { 
       object.removeFromSuperview() 
      } 
     } 
} 
@IBAction func buttonAction(_ sender: Any) { 
    y = y + 110 
    myView = subView(frame: CGRect(x: 80, y: y, width: 300, height: 100)) 
    myView.tag = tag 
    myView.actionButton.tag = tag 
    tag = tag + 1 
    myView.backgroundColor = UIColor.green 
    myView.actionButton.addTarget(self, action: (#selector(cancelbutton(_:))), for: UIControlEvents.touchUpInside) 
    self.view.addSubview(myView) 

} 

enter image description here enter image description here

...この問題は私を助けて、あなたが表示され、動的に再配置される複数の同様の見解を持っている場合は、「事前に感謝します」

+1

スタックビューを使用しましたか? – Lysdexia

+0

いいえ、参考リンクを送ってください、ありがとうございます。 – sathiyaraj

+0

あなたのページから自動レイアウトを作成すると、古い旧式のフレーム設定を使用することができます。 "私たちはこの会話をしたことはありません"。 – rptwsthi

答えて

1

は、UITableViewはスマートですしてください選択。フレームを並べ替えることは、維持するのが面倒であり、多くのコードを実装する必要があります。 UITableViewで提供されるツールを使用しないでください。ちょうどdeleteRowsAtIndexPathsを使用してあなたのビューを削除し、残りの部分があなたの世話をします。

関連する問題