Search code examples
iphonecore-animation

Value of button Title animating in Core Animation Block


I am using a UIButton to represent number of notification on bar of a table that slides up/down when the button is placed. The title of the button changes dynamically to represent number of un-read notifications.

Please see partial screenshots attached.

Start Frame of Animation - Notifications showing as 2 - Correctly Start Frame of Animation - Notifications showing as 2 - Correctly

End Frame of Animation - Notifications Showing as 0 - This should not change End Frame of Animation - Notifications Showing as 0 - This should not change

Below is the code I am using to animate

-(IBAction) showNotifications { 
    if (notificationTableIsUp) {        
        CGRect notificationsHeaderFrame = notificationsHeader.frame;
        CGRect notificationsTableFrame = notificationsTable.frame;

        // Animate to pull up Notification Table 
        [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.4];
            notificationTableIsUp = !notificationTableIsUp;

        notificationsHeaderFrame.origin.y += 220;
        notificationsHeader.frame = notificationsHeaderFrame;
        notificationsTableFrame.origin.y += 220;    
        notificationsTable.frame = notificationsTableFrame;

        [UIView commitAnimations];

    } else {
        CGRect notificationsHeaderFrame = notificationsHeader.frame;
        CGRect notificationsTableFrame = notificationsTable.frame;

        // Animate to pull down Notification Table 
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.4];
        notificationTableIsUp = !notificationTableIsUp;

        notificationsHeaderFrame.origin.y -= 220;
        notificationsHeader.frame = notificationsHeaderFrame;
        notificationsTableFrame.origin.y -= 220;    
        notificationsTable.frame = notificationsTableFrame;

        [UIView commitAnimations];
    }
}

- (void)viewDidLoad {
    [super viewDidLoad];
    notificationTableIsUp = NO;
    [self updateNotificationBadgeTo:2];
}

- (void) updateNotificationBadgeTo:(NSInteger)numberOfNotifications {
    notificationBadgeButton.titleLabel.font = [UIFont boldSystemFontOfSize:14];
    notificationBadgeButton.titleLabel.textColor = [UIColor whiteColor];
    notificationBadgeButton.titleLabel.text = [NSString stringWithFormat:@"%d", numberOfNotifications]; 
}

Note that the Green bar is a UIView and Notifications is a UILabel and Round button is a UIButton all set up in IB. 0 is the initial title for the button set in IB. I am setting it to 2 in viewDidLoad.

So basic problem here is when I click on the button, the value it changing from white 2 (set in viewDidLoad) to Blue 0 (Set in IB).

How can I remove this part when I am animating the slide up/down?

Thanks Dev.


Solution

  • No Solution found so far. Ended up removing this feature altogether :(