删除UIView后重新定位的问题

时间:2017-05-26 09:38:33

标签: ios swift

我正在iOS swift 3.0中构建应用程序。我正在创建动态UIViews。我需要随机删除自定义视图,但目前我无法重新定位位置,因为我得到两个视图之间的间隙,我想删除它们,如下图中的代码所示,请帮助我。

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 个答案:

答案 0 :(得分:1)

当您有多个类似的视图要动态显示和重新排列时,UITableView是明智的选择。重新安排帧将是繁琐的维护并且需要大量代码来实现。为什么不使用UITableView提供的工具?只需使用deleteRowsAtIndexPaths删除您的观点,其余的就会得到照顾。