私はそれが(ページ化されたスクロールビュー)であることiCarousel
を知らない人のために、スロットマシンとして使用しています。したがって、私のアプリではスクロールし、停止すると Image(Result) が 3 秒間表示され、ボタンがポップアップ表示されます。ボタンを押すと、View(Image Result) が削除され、再度回転します。iCarousel
UIScrollview
カルーセルビューを削除する私の方法は次のとおりです。
NSInteger CurrentImage = carousel.currentItemIndex;
[carousel removeItemAtIndex:CurrentImage animated:YES];
[images removeObjectAtIndex:CurrentImage];
しかし、carousel.numberOfItems
アイテムが1つ残っていると、スクロールせず、そこにスタックします。
そこで、アイテム(インデックス)が1つしか残っていなくてもスクロールできるようにする方法を作りました。
最後のインデックスで挿入したので、これを試しました:
[self.carousel insertItemAtIndex:0 animated:NO];
(しかし、動作しません)
それから私は別のものを試しました:
int lastObject = [images objectAtIndex: ([images count]-1)]
[self.carousel insertItemAtIndex:lastObject animated:NO];
(まだ動かない)
そしてこれも:
int count = [images count];
[images objectAtIndex:count - 1];
(まだ運がない)
私は間違っていますか?または他の方法は何ですか?または、最後のビューを複製できますか? 助けてくれてありがとう。
編集: メソッド
- (NSUInteger)numberOfItemsInCarousel:(iCarousel *)carousel
{
if ([images count] == 1 || [self.carousel numberOfItems] == 1)
return 2;
return [images count];
}
- (NSUInteger)numberOfVisibleItemsInCarousel:(iCarousel *)carousel
{
//limit the number of items views loaded concurrently (for performance reasons)
return 7;
}
- (UIView *)carousel:(iCarousel *)_carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{
if (index >= [images count] || index >= [carousel numberOfItems]) {
index = 0;
}
NSDictionary *obj = [images objectAtIndex:index];
view = [[UIImageView alloc] initWithImage:[obj objectForKey:@"image"]];
view.tag = index;
return view;
}
- (NSUInteger)numberOfPlaceholdersInCarousel:(iCarousel *)carousel
{
//note: placeholder views are only displayed on some carousels if wrapping is disabled
return 0;
}
- (CGFloat)carouselItemWidth:(iCarousel *)carousel
{
//usually this should be slightly wider than the item views
return 400;
}
- (BOOL)carousel:(iCarousel *)carousel shouldSelectItemAtIndex:(NSInteger)index{
return 5;
}
- (BOOL)carouselShouldWrap:(iCarousel *)carousel
{
//wrap all carousels
return wrap;
}
削除方法:
-(void) deleteItem{
//Removes the object chosen
if (carousel.numberOfItems >= 1)
{
NSInteger index = carousel.currentItemIndex;
[carousel removeItemAtIndex:index animated:YES];
//[images removeObjectAtIndex:index];
//[images replaceObjectAtIndex:index withObject:[NSNull null]];
}
}