В поисках подтверждения или исправления для следующего поведения ...
При проблемном изменении ширины фиксированного пространства uibarbuttonitem в UItoolbar с помощью метода willAnimateRotationToInterfaceOrientation дисплей отстает от отображения пейзажа в портретной и наоборотнесколько вращений.Как будто это на шаг не синхронизировано.
В качестве изолированного теста I:
- Создан новый проект на основе представления в iPad
- В дизайнере IB добавлен uitoolbar вверхувида
и следующих элементов uibarbutton к нему:
left button|--Fixed space--|middle button<--flexible space-->right button
Назначить UIBarButtonItemFixedSpace в качестве IBOutlet для "| --Fixed space-- |"button
Добавить следующий метод к * .m
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation duration:(NSTimeInterval)duration {
if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown){
UIBarButtonItemFixedSpace.width = 100;
}else{
UIBarButtonItemFixedSpace.width = 500;
}
}
Даже думал, что оператор if срабатывает правильно в соответствующей ориентации после нескольких 90Вращения градусов, дисплей отстает на один поворот на 90 градусов.В симуляторе и на iPad iOS 4.3 и Xcode 4
Я что-то упустил?