我对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但是我很难让这件事情发挥作用,所以我宁愿不这样做。答案 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来获取正确的事件。