首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIScrollView中的UIScrollView问题

UIScrollView中的UIScrollView问题
EN

Stack Overflow用户
提问于 2014-09-05 14:22:27
回答 1查看 59关注 0票数 0

我的故事板中有一个垂直滚动的UIScrollView。在这个scrollView中,我以编程方式创建了一个水平UIScrollView

垂直滚动条被称为scrollView。水平UIScrollView称为scrollInfo。由于某些原因,当使用水平scrollInfo时,我无法注册。有什么办法解释为什么这个不起作用吗?

这是在我的viewDidLoad中:

代码语言:javascript
复制
scrollInfo = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 
155,self.view.frame.size.width, self.view.frame.size.height/4)];
//This will create a scrollview of device screen frame

scrollInfo.scrollEnabled = YES;

NSInteger numberOfViews = 3;
for (int i = 0; i < numberOfViews; i++) {
    CGFloat xOrigin = i * self.view.frame.size.width;
    UIView *awesomeView = [[UIView alloc] initWithFrame:CGRectMake(xOrigin, 0, 
    self.view.frame.size.width, self.view.frame.size.height/4)];
    awesomeView.backgroundColor = [UIColor colorWithRed:0.5/i green:0.5 blue:0.5 
    alpha:1];
    [scrollInfo addSubview:awesomeView];
}

// 3 views added horizontally to the UIScrollView by using xOrigin.

scrollInfo.contentSize = CGSizeMake(self.view.frame.size.width * numberOfViews, 
self.view.frame.size.height/4);

[scroller addSubview:scrollInfo];
//Add scrollview to viewcontroller

scrollInfo.pagingEnabled = YES;

pageControl = [[UIPageControl alloc] init]; //SET a property of UIPageControl
pageControl.frame = CGRectMake(0,200,self.view.frame.size.width, 
self.view.frame.size.height/8);
pageControl.numberOfPages = 3; //as we added 3 diff views
pageControl.currentPage = 0;
[scroller addSubview:pageControl];

下面是我的scrollViewDidScroll方法:

代码语言:javascript
复制
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {

    if ([mainTableView isEqual: scrollView]) {

        if (mainTableView.contentOffset.y > 0) {
            // yourTableView is not on top.
            NSLog(@"not top");
        }

        else {
            // yourTableView is already on top.
            NSLog(@"is top");
            [UIView animateWithDuration:0.5f delay:0 
            options:UIViewAnimationOptionCurveLinear animations:^{
                scroller.contentOffset = CGPointMake(0, 0);
            } completion:NULL];
        }
    }

    else {

        CGFloat pageWidth = self.view.frame.size.width;
        int page = floor((scrollInfo.contentOffset.x - pageWidth / 2 ) / pageWidth) + 
        1; //this provide you the page number
        pageControl.currentPage = page;// this displays the white dot as current page
        NSLog(@"page");
    }
}
EN

回答 1

Stack Overflow用户

发布于 2014-09-05 15:54:27

看起来你忘记将UIScrollViewDelegate连接到你的滚动视图了。完成此操作后,您最好使用scrollview.tag来识别调用委托的滚动视图

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25679718

复制
相关文章

相似问题

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