我以编程方式创建了一个UIButton并将其添加到子视图中。 AddTarget虽然不起作用。 AddTarget仅在我将按钮添加到主视图时才有效。
self.view.addSubview(button)
而不是
ViewSystem.addSubview(button)
没有人知道为什么?
以下是完整代码:
class ViewController: UIViewController {
var ViewSystem = UIView()
@objc func TestPressed(sender: UIButton?) {Test.text=String((sender?.tag)!)
func ButtonCreate () {
let button = UIButton()
button.frame = CGRect(x: 50, y: 100, width: 70, height: 70)
button.addTarget(self, action: #selector(TestPressed), for: .touchUpInside)
button.backgroundColor = UIColor.red
button.tag=5
ViewSystem.addSubview(button)
self.view.addSubview(ViewSystem)
}
}
答案 0 :(得分:2)
发生这种情况是因为你设置了你的按钮框架,这就是你的视图没有被点击的原因。
您没有设置视图框,然后如何在视图中设置按钮。
在这里,我更新了您正在运行的 ButtonCreate()功能代码。
func ButtonCreate () {
ViewSystem.frame = CGRect(x: 50, y: 100, width: 200, height: 70)
ViewSystem.backgroundColor = .blue
let button = UIButton()
button.frame = CGRect(x: 0, y: 0, width: 70, height: 70)
button.addTarget(self, action: #selector(TestPressed), for: .touchUpInside)
button.backgroundColor = UIColor.red
button.tag = 5
ViewSystem.clipsToBounds = false
ViewSystem.addSubview(button)
self.view.addSubview(ViewSystem)
}
我希望它对您有所帮助并节省您的时间
答案 1 :(得分:1)
您必须为ViewSystem提供框架。和ViewSystem的高度宽度应该大于按钮的X和Y.
yourLabel.adjustsFontSizeToFitWidth = true