带有日期的 UIScrollView 内的 UITableView

Posted

技术标签:

【中文标题】带有日期的 UIScrollView 内的 UITableView【英文标题】:UITableView inside UIScrollView with date 【发布时间】:2017-02-01 07:24:52 【问题描述】:

我想在 UIScrollView 中显示一个 UITableView。在 UITableView 标题中,我想首先显示当前日期,然后如果用户向左滚动它应该显示上一个日期,如果用户向右滚动应该显示下一个日期......我想禁用垂直滚动...... .

这是我的代码

- (void)viewDidLoad 
self.title = @"2017-02-01";

_scrollView.delegate = self;
_scrollView.pagingEnabled = YES;
_scrollView.contentSize = CGSizeMake(CGRectGetWidth(self.scrollView.frame) * 3, CGRectGetHeight(self.scrollView.frame));
_scrollView.showsHorizontalScrollIndicator = NO;
_scrollView.showsVerticalScrollIndicator = NO;
_scrollView.scrollsToTop = NO;

有了这个,我可以向右滚动 1 次,然后它就不再滚动了。我尝试了一些解决方案,但它不起作用...

【问题讨论】:

您不应该将表格视图放在滚动视图中。表格视图已经是滚动视图。 tableview是scrollview的子类,可以直接在tableview中访问scroll delegate 我希望它在用户滑动时像页面一样滚动......我们如何在没有scrollview的情况下实现它? 【参考方案1】:

在属性检查器中,您可以取消选中启用滚动处的勾以禁用垂直滚动。

You can check on this picture

【讨论】:

【参考方案2】:

最好的办法是使用UIPageViewController,它完全可以满足您的需要。

每次用户向左或向右滑动时,页面视图控制器都会询问上一个或下一个视图控制器 - 这将是您的视图控制器的一个新实例,其中包含一个 UITableView(设置为所需的日期)。

要禁用表格滚动,请使用tableView.scrollEnabled = NO。 (表格视图只能垂直滚动,因此这将禁用垂直滚动)。

【讨论】:

以上是关于带有日期的 UIScrollView 内的 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 内的 CPTXYGraph

UIpageviewcontroller 内的 UIScrollview

UIScrollView 内的 UIVIew 反弹回来

使用 uitableviewcell 内的 uiscrollview 设置页面控件

UITableView 单元内的 UIScrollView 内的空白 UITableView

子视图内的 UIScrollview 高度动态变化