Search code examples
iosuinavigationcontrolleruiimageviewuibarbuttonitemuinavigationitem

error with navigation bar button animation


The following attempts to make a navigation button and animate it, however I think I am missing something.

Please let me know where I went wrong.

Thank you! This is in a custom UINavigationItem class

-(void)awakeFromNib{
    [super awakeFromNib];
    UIImage *myimage = [UIImage imageNamed:@"navBarFilter.png"];
    NSArray * imageArray  = [[NSArray alloc] initWithObjects:
                             [UIImage imageNamed:@"navBarFilter.png"],
                             [UIImage imageNamed:@"navBarFilter1.png"],
                             [UIImage imageNamed:@"navBarFilter2.png"],
                             [UIImage imageNamed:@"navBarFilter3.png"],
                             [UIImage imageNamed:@"navBarFilter4.png"],
                             [UIImage imageNamed:@"navBarFilter5.png"],
                             nil];

    CGRect frameimg = CGRectMake(0, 0, myimage.size.width, myimage.size.height);

    UIButton *someButton = [[UIButton alloc] initWithFrame:frameimg];
    [someButton setBackgroundImage:myimage forState:UIControlStateNormal];

    UIBarButtonItem *filterButton =[[UIBarButtonItem alloc] initWithCustomView:someButton];

    someButton.imageView.animationImages =imageArray;
    someButton.imageView.animationDuration=2.0;
    someButton.imageView.contentMode=UIViewContentModeBottomLeft;

    [someButton.imageView startAnimating];

    self.rightBarButtonItem =filterButton;
}

Solution

  • figured it out:

    -(void)awakeFromNib{
        [super awakeFromNib];
    
        NSArray * imageArray  = [[NSArray alloc] initWithObjects:
                                 [UIImage imageNamed:@"navBarFilter.png"],
                             [UIImage imageNamed:@"navBarFilter1.png"],
                             [UIImage imageNamed:@"navBarFilter2.png"],
                             [UIImage imageNamed:@"navBarFilter3.png"],
                             [UIImage imageNamed:@"navBarFilter4.png"],
                             [UIImage imageNamed:@"navBarFilter5.png"],
                             nil];
        UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"navBarFilter.png"]];
    
        imageView.animationImages =imageArray;
        imageView.animationDuration=1.5;
    
        UIButton *someButton = [UIButton buttonWithType:UIButtonTypeCustom];
        someButton.bounds=imageView.bounds;
        [someButton addSubview:imageView];
    
        UIBarButtonItem *filterButton =[[UIBarButtonItem alloc] initWithCustomView:someButton];
    
    
        self.rightBarButtonItem =filterButton;
        [imageView startAnimating];
    
    
    }