UIVutton里面的UIVutton里面的UIScrollView没有触发tap动作

时间:2017-12-28 18:41:08

标签: ios iphone swift uiview uiscrollview

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

scrollview视图控制器的代码:

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

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

2 个答案:

答案 0 :(得分:0)

  1. 检查按钮userInteraction是否已启用。
  2. 有时,如果您的按钮位于另一个视图中,例如UIView,则不允许您点按它。要解决此问题,您可能希望在该视图中添加按钮ON TOP但不在其中。确保它在上面但不在故事板上的任何视图中。

答案 1 :(得分:0)

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