1

有很多关于将自UIBarButtonItem定义视图自定义为 UIButton 的讨论。这很清楚。到目前为止,我还没有发现,令我惊讶的是,没有提到处理界面旋转的自定义 UIBarButtonItems - 当您旋转 iPhone 时,这是一种常见的行为,条形按钮会被垂直挤压。但是,如果您以普通方式(通过调用initWithCustomView:方法)自定义 UIBarButtonItem,它会在旋转到横向后保持非挤压状态。有什么解决方法吗?

4

3 回答 3

1

好吧,我发现UIApplicationDidChangeStatusBarOrientationNotification在自定义UIBarButtonItem类中处理的解决方案相当不错。

于 2013-04-28T03:39:40.453 回答
0

我认为您应该使用新的方向图像和文本重建 UIBarButtonItem(您的自定义 UIButton),或者重置自定义视图的框架。

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
    UIButton *rightItemButton = (UIButton *)self.navigationItem.rightBarButtonItem.customView;
    //resize the frame
    if (isLandscape) {

    } else if (isPortrait) {
        ....
    }
}
于 2013-04-25T10:04:50.240 回答
0

如果您可以从 IB 添加 UIBarButtonItem(您不必以编程方式创建它),您可以设置弹簧和支柱以获得默认行为。这个解决方案对我有用。

于 2013-04-25T10:48:39.610 回答