首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个滚动视图?

多个滚动视图?
EN

Stack Overflow用户
提问于 2014-11-23 17:33:38
回答 2查看 253关注 0票数 0

我真的不知道如何解释我想要什么,所以这是一张图片:

我有一个包含很多子视图(灰线)的视图。然后背景(蓝色)是一个图片(UIImageView +模糊效果),所以我需要它留下来,而不是滚动。在背景后面,有一个视图(橙色)。我想要的图片(蓝色)滚动只有当子视图(灰色)是在底部(第三张图片)。

我应该使用嵌入式滚动视图,还是只有一个UIScrollView就能达到这种效果?如果有多个滚动视图,有没有人举个例子?

非常感谢你的帮助

EN

回答 2

Stack Overflow用户

发布于 2014-11-23 18:19:36

只使用一个滚动视图,并使用其委托方法'scrollViewDidScroll‘来读取内容偏移量。使用此值可转换背景图像。

票数 0
EN

Stack Overflow用户

发布于 2014-11-23 18:22:08

没有必要使用2个滚动视图。但我会使用它,因为我更喜欢设置背景滚动视图的contentOffset,而不是直接设置它的框架。

其思想是为前面的滚动视图实现scrollViewDidScroll:委托方法。并通过检查是否为scrollView.contentOffset.y + scrollView.bounds.size.height > scrollView.contentSize.height来跟踪contentOffset以检查滚动是否已到达其内容的末尾。

如果是,则使用超过内容大小的偏移量来偏移背景视图的位置。

请看下面的代码。您可以跳过所有代码,只查看scrollViewDidScroll:

代码语言:javascript
复制
@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    self.tableView.dataSource = self;
    self.tableView.delegate = self;

    self.backgroundScrollView.userInteractionEnabled = NO;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 20;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
    cell.textLabel.text = [NSString stringWithFormat:@"Item %ld", (long)indexPath.row];
    return cell;
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGFloat backgroundVerticalOffset = MAX(scrollView.contentOffset.y + scrollView.bounds.size.height - scrollView.contentSize.height, 0);
    CGPoint backgroundContentOffset = CGPointMake(0.0, backgroundVerticalOffset);
    self.backgroundScrollView.contentOffset = backgroundContentOffset;
    // If you decide not to use two scroll views, then please use backgroundContentOffset to set the backgroundView.frame.origin.y instead
    // e.g. backgroundView.frame.origin.y = -backgroundContentOffset;
}

结果如下所示:

另外,我使用了蓝色背景视图,而不是图像视图,以及其他所有具有清晰背景颜色的视图。

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

https://stackoverflow.com/questions/27087489

复制
相关文章

相似问题

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