点击任意位置时,UIScrollView的contentOffset被重置

时间:2014-11-18 20:51:30

标签: ios swift uiscrollview contentoffset

我在iOS应用中有一个介绍滑动视图寻呼机类型,最后一页有两个文本输入。滚动视图中有7页显示从左向右滑动,因此在键盘出现的最后一页上,我更改了contentOffset以推高布局,以便文本输入仍然可以在键盘上方看到。现在,只要用户选择下一个输入,甚至在页面上真正点击任何地方,就会重置contentOffset并将输入放回键盘下,然后用户需要单击该键盘以重置键盘并单击第二个输入以输入他们的信息。这非常直观,我需要它来停止重置。

我是如何实现这一目标的?我已经搜索了很多东西,没有人对如何修复它有一个明确的答案,即使我看到很多人之前有过这个问题...谢谢!

使用

的代码
func keyboardWillShow(sender: NSNotification)
{
    if self.view.frame.height == 480.0
    {
        currentScrollViewOffset = CGPointMake(ContainerViewController.currentInstance.scrollView.contentOffset.x, ContainerViewController.currentInstance.scrollView.contentSize.height - (self.view.frame.height * 0.729))

        ContainerViewController.currentInstance.scrollView.setContentOffset(currentScrollViewOffset!, animated: false)        
    }
}

func keyboardWillHide(sender: NSNotification) {

    defaultScrollViewOffset = CGPointMake(ContainerViewController.currentInstance.scrollView.contentOffset.x, 0)

    ContainerViewController.currentInstance.scrollView.setContentOffset(defaultScrollViewOffset!, animated: true)
}

请注意,ContainerViewController是代码处理并将不同的视图设置到控制器中的一个UIScrollView中以进行滑动页面介绍

有没有办法捕捉用户"触摸"并防止偏移重置回看似(0,0)的情况?

0 个答案:

没有答案