UIToolbar сверху и интерфейс Ориентация не синхронизированы в поворотах с помощью iPad..bug? - PullRequest
0 голосов
/ 18 октября 2011

В поисках подтверждения или исправления для следующего поведения ...

При проблемном изменении ширины фиксированного пространства 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

Я что-то упустил?

1 Ответ

0 голосов
/ 22 ноября 2011

Хотя это и выглядит как ошибка, я отошел от кнопок панели и вместо этого перешел на всплывающие окна ... другими словами, переосмыслил и изменил дизайн интерфейса.

...