iCarousel Sticks during screen transition

304 views Asked by At

I am using an iCarousel. The carousel contains about 10 images. While screen transitions the images get stuck to the next screen. I am using popToRootview while going back to the original screen. Does it have to do with the UIImage alloc ?

My Code:

- (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

There are 1 answers

1
staticVoidMan On BEST ANSWER

try:

- (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];
}