想要将两个NSMutableArray
填充到tableView
的2个自定义部分;
我有两个NSMutableArray
个事件,我想将它们分成现在和今天的部分。
第一部分:
我想从nowEvents数组中删除事件并将它们放入我的第一部分。
EventClass *event = [appDelegate.nowEvents objectAtIndex:indexPath.row];
event.startTime
是我活动的开始时间
event.endTime
是我活动的结束时间
第二部分: 删除现在发生的事件
EventClass *event = [appDelegate.todayEvents objectAtIndex:indexPath.row];
我想知道的是numberOfRowsInSection
方法,它看起来如何以及cellForRowAtIndexPath
(这里我尝试过NSInteger section = [indexPath section]; if (section == 0) { } if (section == 1) {}
- 但如果我不会有现在正在发生的事件?)
答案 0 :(得分:1)
根据具体情况,您可以在表格视图中包含1个或2个部分,然后在您的numberOfRowsInSection中检查现在是否有任何事件(如果不是,则删除该部分)。所以你的ifs就像是
BOOL eventsNow = YES/NO;
if (section == 0 && eventsNow) { }
if (section == 0 && !eventsNow) { }
if (section == 1 && eventsNow) { }
if (section == 1 && !eventsNow) { /* This case shouldn't happen so assert or throw ...*/ }
答案 1 :(得分:1)
这样的事情应该有效
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
#warning Potentially incomplete method implementation.
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
#warning Incomplete method implementation.
// Return the number of rows in the section.
switch (section) {
case 0:
return [appDelegate.nowEvents count];
case 1:
return [appDelegate.todayEvents count];
default:
return 0;
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
switch (indexPath.section) {
case 0:
EventClass *nowEvent = [appDelegate.nowEvents objectAtIndex:indexPath.row];
//set up cell to display this event
break;
case 1:
EventClass *todayEvent = [appDelegate.todayEvents objectAtIndex:indexPath.row];
//set up cell to display this event
break;
default:
break;
}
// Configure the cell...
return cell;
}
如果您现在没有发生事件,那么您的nowEvent数组将为空,因此numberOfRowsInSection将返回0,因此不会调用cellForRowAtIndexPath,因为没有任何内容可以显示。希望这会有所帮助。