ios - 如何将目标添加到在 swift 5 中以编程方式创建的视图内的按钮
问题描述
我正在尝试以我的按钮为目标,该按钮由以下代码创建:
let btn : UIButton = {
let btn = UIButton()
btn.translatesAutoresizingMaskIntoConstraints = false
btn.widthAnchor.constraint(equalToConstant: 100).isActive = true
btn.heightAnchor.constraint(equalToConstant: 100).isActive = true
btn.clipsToBounds = true
btn.layer.cornerRadius = btn.frame.width / 2
btn.layer.masksToBounds = false
btn.setBackgroundImage(UIImage(named: "level01"), for: .normal)
btn.tag = 1
btn.addTarget(self, action: #selector(buttonClicked), for: .touchUpInside)
btn.isUserInteractionEnabled = true
return btn
}()
此按钮插入到同样以编程方式创建的视图中,然后插入到堆栈视图中,然后滚动视图。
let scrollView = UIScrollView()
let contentView = UIStackView()
override func viewDidLoad() {
super.viewDidLoad()
setupScrollView()
setupViews()
}
@objc func buttonClicked () {
print("user tapped button")
}
func setupScrollView(){
scrollView.translatesAutoresizingMaskIntoConstraints = false
contentView.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(containerView)
self.containerView.addSubview(scrollView)
scrollView.addSubview(contentView)
scrollView.centerXAnchor.constraint(equalTo: containerView.centerXAnchor).isActive = true
scrollView.widthAnchor.constraint(equalTo: containerView.widthAnchor).isActive = true
scrollView.topAnchor.constraint(equalTo: containerView.topAnchor).isActive = true
scrollView.bottomAnchor.constraint(equalTo: containerView.bottomAnchor).isActive = true
contentView.centerXAnchor.constraint(equalTo: scrollView.centerXAnchor).isActive = true
contentView.widthAnchor.constraint(equalTo: scrollView.widthAnchor).isActive = true
contentView.topAnchor.constraint(equalTo: scrollView.topAnchor).isActive = true
contentView.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor).isActive = true
}
func setupViews(){
contentView.addSubview(view1)
view1.centerXAnchor.constraint(equalTo: contentView.centerXAnchor).isActive = true
view1.topAnchor.constraint(equalTo: contentView.topAnchor).isActive = true
view1.widthAnchor.constraint(equalTo: contentView.widthAnchor, multiplier: 3/4).isActive = true
view1.heightAnchor.constraint(equalToConstant: 100).isActive = true
view1.addSubview(btn)
view1.bringSubviewToFront(btn)
}
let view1: UIView = {
let view = UIView()
view.backgroundColor = UIColor.clear
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
当试图按下按钮时它什么也不做,我在问我是否还遗漏了什么。
提前感谢您的帮助。
解决方案
推荐阅读
- html - 如何查看我上传到 FTP 服务器的 Asp.Net MVC 页面?
- mysql - 为什么此代码不起作用“SELECT DISTINCT CITY FROM STATION WHERE CITY LIKE '[aeiou]%'”
- ruby-on-rails - Rails新手:如何将封面图像添加到属于另一个模型的模型
- python - 重新索引特定级别的 pandas MultiIndex
- angular - 登录后返回用户信息(如角色)的好方法是什么?
- solr - Solr 术语方面比率
- javascript - 如何防止从顶级下拉锚点导航?
- swift - 为什么搜索栏将导航栏推出图片?
- vue.js - 如果另一个相关字段发生更改,则强制进行新的验证
- batch-file - 如何获取特定文件夹中的文件名并将文件名与某些字符连接起来