我已经找了好几个小时了,还没有运气。我想在scrollview中使用两个自定义 View 。第一个 View 有一个按钮作为 subview ,可将用户带到下一页(向下滚动)。但是按钮操作从未触发过。如果我将按钮用作scrollview subview ,则一切正常,但这不是我想要的。

scrollview View Controller 的代码:

    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)
    }
}

ScrollView Storyboard Configuration

View1类的代码:
    class View1: UIViewController {

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

    @IBAction func didTouchUpInsideMoreInfoButton(_ sender: Any) {
        print("test")
    }
}

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

最佳答案

原来我使用的是 View Controller 的 View ,由于某种原因,选择器无法按这种方式工作。因此,我所做的只是创建一个UIView,然后一切正常。

10-07 19:55
查看更多