Looking for confirmation or a correction on the following behaviour...
When problematically changing width of a fixed space uibarbuttonitem in UItoolbar via willAnimateRotationToInterfaceOrientation method, the display lags behind showing landscape when in portrait and vice versa after a few rotations. Like it goes one step out of sync.
As isolated test I:
and the following uibarbutton items to it:
left button|--Fixed space--|middle button<--flexible space-->right button
Assign UIBarButtonItemFixedSpace as IBOutlet to "|--Fixed space--|" button
Add following method to *.m
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation duration:(NSTimeInterval)duration {
if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown){
UIBarButtonItemFixedSpace.width = 100;
}else{
UIBarButtonItemFixedSpace.width = 500;
}
}
Even thought the if statement does fire correctly in respective orientation after a few 90 degree rotations, the display lags one 90 degree rotation behind. Seen in both simulator and iPad iOS 4.3 & Xcode 4
Am I missing something?
Although this does look like a bug, I have moved away from bar buttons and gone with popovers instead...in other words a re-think and re-design in the UI.