使用 iPad 时,顶部的 UIToolbar 和界面方向不同步。bug?

发布于 2024-12-11 01:33:55 字数 977 浏览 0 评论 0原文

寻找对以下行为的确认或更正...

当通过 willAnimateRotationToInterfaceOrientation 方法有问题地更改 UItoolbar 中固定空间 uibarbuttonitem 的宽度时,显示在纵向时落后于显示横向,反之亦然在几次旋转后。就像它一步步不同步一样。

作为独立测试 I:

  • 在 iPad 中创建了基于新视图的项目
  • 在 IB 设计器中,在视图顶部添加了一个 uitoolbar
  • 以及以下 uibarbutton 项目:

    左键|--固定空格--|中键<--灵活空格-->右键
    
  • 将 UIBarButtonItemFixedSpace 作为 IBOutlet 分配给“|--固定空间--|”将

  • 将以下方法添加到 *.m

    -(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation 持续时间:(NSTimeInterval)duration { 
        if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown){
            UIBarButtonItemFixedSpace.width = 100;
        }别的{
            UIBarButtonItemFixedSpace.width = 500;   
        }
    } 
    

即使 if 语句在几次 90 度旋转后在各自的方向上正确触发,显示也会滞后一个 90 度旋转。在模拟器和 iPad iOS 4.3 & 中都可以看到。 Xcode 4

我错过了什么吗?

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:

  • Created new view based project in iPad
  • In IB designer added a uitoolbar to top of view
  • 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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

抹茶夏天i‖ 2024-12-18 01:33:55

虽然这看起来确实像一个错误,但我已经不再使用栏按钮,而是使用弹出窗口......换句话说,在 UI 中重新思考和设计。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文