データベースから取得した配列カウントに従って、複数のUIButton
(カードとして)サブビューを配置しました。UIScrollView
それとは別に、無限スクロールの開発に成功し、正常に動作しています。だから私は「覚えている」というオプションを持っています。覚えているをタップするとすぐに、カード(UIButton
サブビューとして)がスクロール時に表示される頻度が少なくなります。これを達成するにはどうすればよいですか。つまり、特定のインデックスの配列は、UIScrollView
.Any ロジックまたはアイデアであまり表示されないようにする必要がありますか? 無限スクロールまでの私のコードは次のとおりです。
-(void)createCards
{
[self addCardWithName:[NSString stringWithFormat:@"%@",[entryArray objectAtIndex:
([entryArray count]-1)]] atPosition:0];
for (int i = 1; i < ([entryArray count]+1); i++) {
NSString *titleString = [NSString stringWithFormat:@"%@",[entryArray objectAtIndex:i-1] ];
UIButton *buttonView1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[buttonView1 setFrame:CGRectMake(i*320, 0, 320, 180)];
[buttonView1 setTitle:titleString forState:UIControlStateNormal];
buttonView1.tag=i;
[scrollViewForCard addSubview:buttonView1];
}
[self addCardWithName:[NSString stringWithFormat:@"%@",[entryArray objectAtIndex:0]] atPosition:([entryArray count]+1)];
scrollViewForCard.contentSize = CGSizeMake(480*([entryArray count]+1), 180);
[scrollViewForCard scrollRectToVisible:CGRectMake(320,0,320,180) animated:NO];
}
- (void)addCardWithName:(NSString*)titleString atPosition:(int)position
{
UIButton *buttonView1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[buttonView1 setFrame:CGRectMake(position*320, 0, 320, 180)];
[buttonView1 setTitle:titleString forState:UIControlStateNormal];
[scrollViewForCard addSubview:buttonView1];
}
#pragma mark scroll view-delegate
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
int randomInt2 = arc4random() % [entryArray count];
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)sender
{
if (sender.contentOffset.x == 0) {
[sender scrollRectToVisible:CGRectMake((320*[entryArray count]),0,320,180) animated:NO];
}
else if (sender.contentOffset.x == ([entryArray count]+1)*320) {
[sender scrollRectToVisible:CGRectMake(320,0,320,180) animated:NO];
}
}