UIScrollview中的UITableView,多页&一个桌面视图

时间:2012-03-02 15:00:31

标签: ios uitableview uiscrollview

我对UIScrollView中的UITableView有疑问。

情况就是这样:

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

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

所以我用一个包含UITableView的UIScrollview制作了一个DetailViewController。滚动工作,pagecounter工作,我的单元格中有硬编码数据,到目前为止一直很好。

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

我怎样才能做到这一点?

我在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;

但是这不起作用,它只显示每个单元格中的Page 0。 奇怪的是:如果我将细胞拉得太高或太低(因此它不再可见),细胞会显示正确的值。我制作了一段视频,很难解释。视频:http://cl.ly/EgfB

我尝试调用reloadData,但这也无效。

如果不为每个事件创建一个tableview,这是否可行?

顺便说一句:我已经尝试过了PanelTableView但是我很难让这件事情发挥作用,所以我宁愿不这样做。

1 个答案:

答案 0 :(得分:0)

您可以尝试在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;
}

然后通过索引dataSource来获取正确的事件。