我正在制作一个应用程序,用户可以在详细视图中收藏不同的项目。在表格视图中单独显示收藏夹
我有一个表格视图,其中显示所有项目,我想在同一个表格视图的单独部分中显示最爱。任何想法如何做到这一点?
此时我将所有的收藏夹保存在一个名为favouriteItems的NSMutableArray中。
我想我必须从原始数组中删除最喜欢的对象。 但我可以用两个数组填充tableview吗? 一个阵列在第一部分中的最爱,其余部分在第二部分
我正在制作一个应用程序,用户可以在详细视图中收藏不同的项目。在表格视图中单独显示收藏夹
我有一个表格视图,其中显示所有项目,我想在同一个表格视图的单独部分中显示最爱。任何想法如何做到这一点?
此时我将所有的收藏夹保存在一个名为favouriteItems的NSMutableArray中。
我想我必须从原始数组中删除最喜欢的对象。 但我可以用两个数组填充tableview吗? 一个阵列在第一部分中的最爱,其余部分在第二部分
当然,你可以。你的表格视图只需要2个部分。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 2;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
switch (section) {
case 0:
return normalItems.count;
break;
case 1:
return favouriteItems.count;
default:
break;
}
return 0;
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
switch (section) {
case 0:
return @"Normal Items";
break;
case 1:
return @"Favorite Items";
default:
break;
}
return nil;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"MyCell";
CeldaCell *cell = (CeldaCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[CeldaCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
switch (indexPath.section) {
case 0:
cell.textLabel.text = [normalItems objectAtIndex:indexPath.row];
break;
case 1:
cell.textLabel.text = [favouriteItems objectAtIndex:indexPath.row];
break;
}
return cell;
}
感谢您的回答。我在我的应用程序中做了一些更改,现在我只有一个包含所有食谱的数组,并使用sortUsingComparator对它们进行排序,以便首先显示收藏夹。我有一个称为Item的模型对象,它带有一个名为isFavourite的BOOL。我可以把所有的项目都放在一个部分中,而其他所有人都放在另一部分中? – Jojo 2013-04-23 08:00:51
使用2个数组可能会更高效。但你也可以像你说的那样去做。你只需要有2个部分,并计算通讯录UITableViewDatasource方法中的收藏夹数量和收藏夹数量。我可以发布一些代码,但如果你尝试然后再回来有任何疑问,会更好。 – Odrakir 2013-04-23 08:48:46
我几乎在那里。当我添加一个最喜欢的时候,它会移动到右侧部分,但是在原始部分它被一个空白单元格替换为一个空白标签,当我点击该行时,我喜欢的项目的详细视图显示出来。 在numberOfRowsInSection循环所有我的项目,并有两个整数,如果item.isFavourite == 1增加。在cellForRowAtIndexPath我也检查是否item.isFavourite = 1或0.我设置cell.textlabel = item.title在我的if语句。 – Jojo 2013-04-23 09:04:28
所以你到目前为止尝试过什么?你如何“知道”哪一个对象是最喜欢的?它是在两个部分显示两个数组还是将一个数组分成两个,这会阻止你? (不要回答“Both”) – 2013-04-22 08:45:19