嵌套 ScrollView 中的 UIButton 突出显示,但在点击时不会触发 Segue 或 IBAction -



我有一个嵌套滚动视图(水平分页滚动视图中的垂直分页滚动视图)中的UIButton。我的问题是当我点击按钮时,它会突出显示,但它不会触发我已链接到的 segue。然后,我尝试将其链接到 IBAction 函数,在该函数中放置了一个断点,当我点击按钮时,我没有命中该断点,所以我的按钮也没有触发 IBActions。

我尝试关闭两个滚动视图的延迟内容触摸,但这不起作用。所做的只是在我点击按钮后立即突出显示按钮,而不是在突出显示之前稍微加权。无论哪种方式,当我点击它时,我的按钮都会突出显示,但我的出口(segue 或 IBActions)都没有触发,我认为这很奇怪。我在网上发现其他人也有类似的问题,但他们的按钮甚至没有突出显示。我的亮点,所以我知道它从用户那里得到输入。

以下是我实例化嵌套滚动视图的方式。主水平滚动视图在我的情节提要中创建,然后在其视图控制器视图中DidLoad 方法中,我这样做是为了嵌套垂直滚动视图。垂直滚动视图包含我的按钮。

let readingVC = storyboard!.instantiateViewControllerWithIdentifier("ReadingViewController") as! ReadingRingViewController
readingVC.read = reading.minutesRead
readingVC.goal = reading.minutesGoal
readingVC.selectedDate = selectedDate
readingVC.today = today
let readingView = readingVC.view
let scrollPage2 = UIScrollView(frame: CGRectMake(readingView.bounds.size.width,0,readingView.bounds.size.width, readingView.bounds.size.height))
scrollPage2.addSubview(readingView)
scrollPage2.contentSize = CGSize(width: readingView.bounds.size.width, height: readingView.bounds.size.height*2)
scrollPage2.pagingEnabled = true;
scrollPage2.alwaysBounceVertical = true
scrollPage2.userInteractionEnabled = true
let readingBottomView = storyboard!.instantiateViewControllerWithIdentifier("ReadingBottomViewController").view
let scrollPage2Bottom = UIScrollView(frame: CGRectMake(0,readingView.bounds.size.height,readingBottomView.bounds.size.width, readingBottomView.bounds.size.height*2))
scrollPage2Bottom.addSubview(readingBottomView)
        scrollPage2Bottom.contentSize = CGSize(width: readingBottomView.bounds.size.width, height: readingBottomView.bounds.size.height)
scrollPage2.addSubview(scrollPage2Bottom)
scrollPage2.sendSubviewToBack(scrollPage2Bottom)

这是我的按钮所在的视图控制器的代码。我已经将它链接到IBAction,并将其链接到另一个视图控制器作为推送segue

@IBAction func start(sender: AnyObject) {
    var x = 0
    var y = 0
    x = y + x
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "StartReading" {
        let destVC = segue.destinationViewController
    }
}

我解决了自己的问题。按钮的操作不起作用的原因是因为我将按钮所在的视图添加为子视图,但忘记将按钮视图的视图控制器添加为子视图控制器。因此,我在实例化 readingVC 并设置其成员变量后插入了代码行后面的行:

self.addChildViewController(readingVC)
readingVC.didMoveToParentViewController(self)

现在按钮完全按预期工作

最新更新