iCarousel在屏幕转换期间粘贴

时间:2013-12-03 08:07:36

标签: ios icarousel

我正在使用iCarousel。旋转木马包含大约10张图像。屏幕转换时,图像会粘在下一个屏幕上。我回到原始屏幕时使用popToRootview。它与UIImage alloc有关吗?

我的代码:

- (NSUInteger)numberOfItemsInCarousel:(iCarousel *)carousel
{
    return ([animals 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
{
    NSString *filePath1 = [animals objectAtIndex:index];    
    UIImage *image = [[UIImage alloc] initWithContentsOfFile:filePath1];

    //create a numbered view
    UIView *view = [[UIImageView alloc] initWithImage:image];
    view.frame  = CGRectMake(0.0f, 0.0f, 230, 150);
    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 240;
}

- (BOOL)carouselShouldWrap:(iCarousel *)carousel
{
    //wrap all carousels
    return wrap;
}

- (void)carouselDidEndScrollingAnimation:(iCarousel *)aCarousel
{
    label.text =  [descriptions objectAtIndex:aCarousel.currentItemIndex];
    [_label1 setText:[NSString stringWithFormat:@"%ld/%lu", (long)aCarousel.currentItemIndex+1,(unsigned long)[animals count]]];
}

- (IBAction)btnBackAct:(UIButton *)sender
{
    [carousel removeFromSuperview];
    //[carousel scrollToItemBoundary];
    [carousel scrollToItemAtIndex:0 animated:NO];
    [self.navigationController popViewControllerAnimated:YES];    
}

1 个答案:

答案 0 :(得分:2)

尝试:

- (IBAction)btnBackAct:(UIButton *)sender
{
    [carousel scrollToItemAtIndex:0 duration:0.01];
    [self performSelector:@selector(popMyView) withObject:nil afterDelay:0.02];
}

-(void)popMyView
{
    [self.navigationController popViewControllerAnimated:YES];
}