UIButton 内 UIView 内 UIScrollView 不触发点击动作

Gab*_*mes 5 iphone uiscrollview uiview ios swift

我一直在寻找这个几个小时,但还没有运气。我想在滚动视图中使用两个自定义视图。第一个视图有一个按钮作为子视图,引导用户进入下一页(向下滚动)。但是它从来没有触发过按钮动作。如果我将按钮用作滚动视图子视图,一切正常,但这不是我想要的。

滚动视图视图控制器的代码:

    class ViewController: UIViewController {

    @IBOutlet weak var scrollView: UIScrollView!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        let redView = View1()
        redView.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.scrollView.frame.height)
        self.scrollView.addSubview(redView.view!)

        let blueView = UIView(frame: CGRect(x: 0, y: self.scrollView.frame.height, width: self.view.frame.width, height: self.scrollView.frame.height))
        blueView.backgroundColor = .blue
        self.scrollView.addSubview(blueView)

        self.scrollView.contentSize = CGSize(width: self.view.frame.width, height: self.scrollView.frame.height * 2)
    }

    func go(to page: Int) {
        let y = CGFloat(page) * self.scrollView.frame.size.height
        self.scrollView.setContentOffset(CGPoint(x: 0, y: y), animated: true)
    }
}
Run Code Online (Sandbox Code Playgroud)

ScrollView 故事板配置

View1 类的代码:

    class View1: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func didTouchUpInsideMoreInfoButton(_ sender: Any) {
        print("test")
    }
}
Run Code Online (Sandbox Code Playgroud)

欢迎任何想法。提前致谢。

Gab*_*mes 2

事实证明,我正在使用视图控制器的视图,并且由于某种原因,选择器不能以这种方式工作。所以,我所做的就是仅创建一个 UIView,然后一切正常。