如何在plist ios中显示集合视图中的有限项目

时间:2014-10-08 12:41:41

标签: ios uicollectionview

我正在尝试从集合视图中的Plist加载有限的项目。在我的plist中,我有30个项目,但我想一次只显示3个或4个,按下按钮想要显示下一个3.任何想法如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

试试这个,

@interface ViewController ()
 {
 int currentPage;
 int pagelimit;
 }

- (void)viewDidLoad
{
currentPage=0;
pagelimit=3;
 [self reloadData];

} 

 -(IBAction)nextBtnClicked:(id)sender;
{
      NSArray *arr = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:NSLocalizedString(@"plistName", nil) ofType:@"plist"]];
currentPage=currentPage+3;
pagelimit=pagelimit+3;
if (currentPage>[arr count])
{
    currentPage=currentPage-3;
    pagelimit=pagelimit-3;
    return;

}
 [self reloadData];

}

 -(IBAction)previousBtnClicked:(id)sender;
{
      NSArray *arr = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:NSLocalizedString(@"plistName", nil) ofType:@"plist"]];   
currentPage=currentPage-3;
pagelimit=pagelimit-3;
if (currentPage<[arr count]) {
    currentPage=currentPage+3;
    pagelimit=pagelimit+3;
    return;

}
[self reloadData];

}

-(void)reloadData
{
NSArray *arr = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:NSLocalizedString(@"plistName", nil) ofType:@"plist"]];
[dataArray removeAllObjects];
for (int i=currentPage; i<pagelimit; i++) {

    [dataArray addObject:[arr objectAtIndex:i]];
}
[collectionview reloadData];
}

答案 1 :(得分:0)

您可以将.plist个文件转换为NSArray,然后您可以专门询问序列中的第一个[0],第七个[6],甚至第三十[29]

到目前为止要求前三项,请使用与此类似的代码

-(void)getThree {
NSString *path = [[NSBundle mainBundle] pathForResource:@"list" ofType:@"plist"];
NSMutableArray *array = [[NSMutableArray alloc] initWithContentsOfFile:path];

NSString *first = [array objectAtIndex:(0)%array.count];
NSString *second = [array objectAtIndex:(1)%array.count];
NSString *third = [array objectAtIndex:(2)%array.count];

NSLog(@"%@ %@ %@", first, second, third); }

注意:

[0]始终是集合中的第一项,因为他们喜欢以0开头。

所以基本上无论集合中项目的数量是多少,减去1并将其放在括号之间。