【问题标题】:UITableView in UIScrollview, multiple pages & one tableviewUIScrollview中的UITableView,多页&一个tableview
【发布时间】:2012-03-21 01:55:33
【问题描述】:

我有一个关于 UIScrollView 中的 UITableView 的问题。

情况是这样的:

我有一个 ListViewController,它在 UITableView 中显示一些事件。如果用户点击一个事件,这个事件就会显示在某种 DetailViewController 中。到目前为止没什么大不了的。

问题是:客户端希望能够左右滑动以查看上一个和下一个事件(在 DetailViewController 中)。这就是我有点挣扎的地方。

所以我用一个包含 UITableView 的 UIScrollview 制作了一个 DetailViewController。滚动工作,页面计数器工作,我的单元格中有硬编码数据,到目前为止一切顺利。

我的问题:每个事件的数据都必须加载并显示在这个 tableview 中。 所以:如果用户点击 Event1,所有 Event1 数据都必须显示在 tableview 中。当用户向左滑动时,来自 Event2 的数据应该是可见的(在同一个表视图中)。对几个事件重复此操作。

我怎样才能做到这一点?

我在 CellForRowAtIndexPath 中尝试过这样的事情:

if (pageControl.currentPage == 0) {
    cell.textLabel.text = @"Page 0"; //These will all be arrays in the future
}
else if (pageControl.currentPage == 1) {
    cell.textLabel.text = @"Page 1";
}
else if (pageControl.currentPage == 2) {
    cell.textLabel.text = @"Page 2";
}
else if (pageControl.currentPage == 3) {
    cell.textLabel.text = @"Page 3";
}    
else if (pageControl.currentPage == 4) {
    cell.textLabel.text = @"Page 4";
}

return cell;

但这不起作用,它只在每个单元格中显示第 0 页。 奇怪的是:如果我将一个单元格拉得太高或太低(所以它不再可见),该单元格会向我显示正确的值。我做了一个视频,很难解释。视频:http://cl.ly/EgfB

我尝试调用 reloadData,但也没有用。

如果不为每个事件创建一个表视图,这是否可能?

顺便说一句:我已经尝试过PanelTableView,但我很难让那个东西工作,所以我宁愿不这样做。

【问题讨论】:

    标签: ios uitableview uiscrollview


    【解决方案1】:

    您可以尝试在 detailViewController 中传递表格数据源,并让它知道要显示的当前事件。在detailViewController中可以实现一个自定义的init函数

    - (id) initWithEvent: (NSInteger) eventNum dataSource: (NSArray*) dSource
    {
        if(self = [super initWithNibName: @"detailViewController" bundle: nil])
        {
            self.dataSource = dSource;
            self.currentEvent = eventNum;
        }
        return self;
    }
    

    然后通过索引数据源来选择正确的事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 2014-09-16
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多