首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIButton tap tap不触发点击动作

UIButton tap tap不触发点击动作
EN

Stack Overflow用户
提问于 2017-12-28 18:41:08
回答 2查看 675关注 0票数 5

我已经找了好几个小时了,还没有运气。我想在滚动视图中使用两个自定义视图。第一个视图有一个按钮作为子视图,将用户引导到下一个页面(向下滚动)。但它从未发射过的按钮动作。如果我使用该按钮作为滚动视图子视图,一切都可以正常工作,但这不是我想要的。

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

代码语言:javascript
复制
    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故事板配置

View1类的代码:

代码语言:javascript
复制
    class View1: UIViewController {

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

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-21 23:11:44

原来我使用的是视图控制器的视图,由于某些原因,选择器不是这样工作的。所以,我所做的只是创建一个UIView,然后一切都很好。

票数 2
EN

Stack Overflow用户

发布于 2017-12-28 18:44:37

  1. 检查是否启用了按钮userInteraction。
  2. 有时,如果您的按钮在另一个视图中,例如,一个UIView,它不允许您点击它。要解决这个问题,您可能需要在视图的顶部添加按钮,而不是在视图中添加按钮。确保它在上面,但不要在你的故事板上的任何视图中。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48012695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档