保持滚动视图外的区域也可滚动

时间:2017-04-20 07:32:34

标签: ios objective-c uiscrollview

我有一个滚动视图,我添加了不同的视图(比如教程)。

enter image description here

我想要的是具有以下设计的滑块,在滚动中我会在左侧看到前一个tut,在右侧看到下一个。

为此,我添加了scrollview并启用了分页,并在for循环中添加了UILabel(现在)。在下面的scrollview中添加标签后就是我所拥有的。

enter image description here

要查看左侧和右侧的数据。是的,我所做的是取消选中故事板中的剪辑子视图。

enter image description here

然而我注意到的是我只能在滚动视图区域而不是在外面滚动。

任何想法如何让UILabel在外面滚动&在scrollview中。

到目前为止,为了使其工作,我所做的是在视图上添加滑动手势并以编程方式进行滚动。然而我所看到的是如果我滚动滚动视图外,它也应该滚动滚动视图。

1 个答案:

答案 0 :(得分:1)

... Phewww

最后我设法完成了它。

我所做的是在主滚动视图(mainScrollView)上方添加了一个全屏宽度的scrollview(dummyScrollView)(我用它来显示标签)。

现在我也启用了dummyScrollView的分页,并在下面实现我根据dummyScrollView的因子计算滚动我的mainScrollView

#pragma mark - UIScrollView Delegate
- (void) scrollViewDidScroll:(UIScrollView *)sender
{

    float myFactor = 0;
    // 44232 is tag for new scrollview
    if (sender.tag==44232) {

        myFactor = mainScrollView.frame.size.width/duplicateSV.frame.size.width;

        myFactor = duplicateSV.contentOffset.x*myFac;

        CGRect mCC = CGRectMake(myFactor, 0, mainScrollView.frame.size.width, mainScrollView.frame.size.height);
        [mainScrollView scrollRectToVisible:mCC animated:NO]; // NO is very important... YES will not work
    }

    // 44231 is main scrollview tag where I won't be doing anything...
    if (sender.tag==44231) {

    }
}