首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UITableView contentSize及其起源

UITableView contentSize及其起源
EN

Stack Overflow用户
提问于 2014-08-26 14:06:42
回答 1查看 539关注 0票数 0

我只是在玩UITableView,我创建了两个按钮。

其中一个按钮将导致表视图向上滚动一定数量,而另一个按钮将导致表视图向下滚动一定数量。

向上滚动:

代码语言:javascript
复制
[self.tableView setContentOffset:CGPointMake(self.tableView.contentOffset.x, self.tableView.contentOffset.y + up) animated:YES];

up += 10;

向下滚动:

代码语言:javascript
复制
[self.tableView setContentOffset:CGPointMake(self.tableView.contentOffset.x, self.tableView.contentOffset.y + down) animated:YES];

down -= 10;

一切都很好,很有趣。但问题是,我不知道如何防止滚动从屏幕的顶部和底部的滚动。到目前为止,它将继续向上或向下滚动,甚至显示空白,同样适用于底部。

我尝试过使用contentSize属性,但它似乎不起作用。

不工作意味着:

代码语言:javascript
复制
if(up < self.tableView.contentSize.height)
{
    [self.tableView setContentOffset:CGPointMake(self.tableView.contentOffset.x, self.tableView.contentOffset.y + up) animated:YES];
    up += 10;
}

以上是当金额(up)大于contentSize时不允许向下滚动的尝试。但似乎不起作用。

不管怎么说,我能检测到屏幕上和底部的滚动都在离屏吗?换句话说,我想防止它在第一个单元格上方滚动,对于底部超过最后一个单元格。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-26 18:10:44

与其将变量updown保留在类中,并将现有的contentOffset按这些值移动(然后更改这些值,这对我来说没有意义),为什么不将所有变量保持在本地,并以恒定的数量进行调整:

代码语言:javascript
复制
- (void)buttonClicked:(id)sender
{
    CGPoint offset = self.tableView.contentOffset;
    CGSize visibleSize = self.tableView.bounds.size;
    if (sender == btnUp)
    {
        offset = CGPointMake(offset.x, offset.y + 10);
        if (offset.y < (self.tableView.contentSize.height - visibleSize.height))
            [self.tableView setContentOffset: offset animated:YES];
    }
    else if (sender == btnDown) { /* you get the idea */ }
}

这部分只是一个idea...the真正的解决方案,我认为这取决于在“应否滚动”检查中包括tableView.bounds

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

https://stackoverflow.com/questions/25507857

复制
相关文章

相似问题

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