【发布时间】:2017-05-26 05:18:06
【问题描述】:
我正在 swift 3 中构建一个 iOS 应用程序,我正在创建动态 UIViews。我需要随机删除自定义视图。请帮助我,我被这个问题困扰了很长时间。 提前致谢
class ViewController: UIViewController {
var myView: subView!
var y : CGFloat!
@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) {
myView.removeFromSuperview()
}
@IBAction func buttonAction(_ sender: Any) {
y = y + 110
myView = subView(frame: CGRect(x: 80, y: y, width: 300, height: 100))
myView.backgroundColor = UIColor.green
myView.actionButton.addTarget(self, action: (#selector(cancelbutton(_:))), for: UIControlEvents.touchUpInside)
self.view.addSubview(myView)
}
}
正如您在上图中看到的那样,当我单击关闭时,SubView(custome View) 会关闭,但是带有绿色的 MyView 不会消失并停留在那里。有人请帮忙.........
required init?(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder)
Bundle.main.loadNibNamed("subView",owner: self, options:nil)
self.addSubview(self.views)
Bundle.main.loadNibNamed("subView",owner: self, options:nil)
self.addSubview(self.views)
}
override init(frame: CGRect)
{
super.init(frame: frame)
Bundle.main.loadNibNamed("subView", owner: self, options: nil)
views.frame = bounds
self.addSubview(self.views)
}
@IBAction func buttonAction(_ sender: Any) {
views.removeFromSuperview()
}
【问题讨论】:
-
您在 subView 类中添加了什么代码?
-
您正在持有 myView = 您添加的最后一个视图。不是您要关闭/删除的视图。
-
需要初始化?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) Bundle.main.loadNibNamed("subView",owner: self, options:nil) self.addSubview(self.视图) Bundle.main.loadNibNamed("subView",owner: self, options:nil) self.addSubview(self.views) } override init(frame: CGRect) { super.init(frame: frame) Bundle.main.loadNibNamed ("subView", owner: self, options: nil) views.frame = bounds self.addSubview(self.views) }
-
请在问题中附加代码(通过编辑),而不是在 cmets 中添加太多代码(因为缺少格式,它变得不可读)
-
嘿,只是想想你为什么不使用 tableview 来代替......