我正在尝试从集合视图中的Plist加载有限的项目。在我的plist中,我有30个项目,但我想一次只显示3个或4个,按下按钮想要显示下一个3.任何想法如何解决这个问题?
答案 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并将其放在括号之间。