我正在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)
}
请帮我解决这个问题..."提前致谢"
答案 0 :(得分:1)
当您有多个类似的视图要动态显示和重新排列时,UITableView
是明智的选择。重新安排帧将是繁琐的维护并且需要大量代码来实现。为什么不使用UITableView
提供的工具?只需使用deleteRowsAtIndexPaths
删除您的观点,其余的就会得到照顾。